1

背景与背景

我们正在构建免费的 HTML 来为广泛分布的机顶盒玩游戏,并在用户的电视上播放。盒子本身运行一个 WebKit (WPE) 浏览器,在RDK的修改版本上运行。该盒子只能与 IPv6 兼容服务器通信,所有第三方端点都必须列入白名单。

我们希望跟踪游戏中用户行为的数据,并将其存储在数据分析师可以查询的数据库中以创建详细分析。目的是使用这些数据来改进游戏调整、游戏设计和创意设计,以改善用户体验并优化留存率。

我们设计的解决方案:将事件记录到 Firebase Analytics 并将该服务链接到 BigQuery 以进行复杂查询。

- 问题 -

第一个问题 - 当我们尝试从页面的 html 文件加载脚本时(根据本指南),当我们在谷歌 Chrome 中测试时一切正常......然而,在智能电视盒上,脚本被加载并无序运行. 由于某种原因,盒子上的浏览器不会按照页面上定义的顺序加载脚本,即使将 defer 属性添加到 html 脚本元素也是如此。这会导致在基本 Firebase/app 包完成加载之前初始化 Firebase Analytics 包的脚本文件的问题。我们还看到了一个关于“IDBIndex”的神秘错误,但认为它与脚本加载顺序问题有关......

我们使用 webpack 将 firebase npm 包捆绑到它自己的缩小脚本文件中,并使用一些逻辑来使用我们应用程序的属性对其进行初始化。目的是同时加载基本包以及分析和性能监控包,并以正确的顺序对其进行初始化。这由我们的 html 文件与我们的游戏逻辑脚本文件分开加载,我们的游戏逻辑的其余部分将在运行前等待“DOMContentLoaded”事件。

真正的问题出现了 - 现在,上面的解决方案仍然可以在 Google Chrome 中完美运行,但是当我们在智能电视硬件上进行测试时,我们仍然从 firebase 分析脚本使用的 IDB 包中收到以下错误:

这是错误

我们认为这是因为盒子上运行的浏览器功能缺失,但也可能与盒子的硬件有关。该盒子不提供任何形式的本地持久存储。所有持久性数据都必须保存在“云 cookie”中,该 cookie 只是保存到 Smart TV 用户帐户并与 Smart TV 平台服务器同步的 cookie。这会在我们的应用程序每次启动时初始化之前从他们的服务器加载。

我与平台的开发人员支持团队合作,他们只能说:

“看起来该应用程序正在尝试使用在设备上禁用的 Index DB,我建议尝试从您尝试使用的 firebase 中排除 firedatabase。这应该可以正常工作。”

据我所知,这不是我能够在 Firebase 的网络应用插件配置中修改的东西。我弄错了吗?

请让我知道我可以提供哪些其他信息。非常感谢您的帮助!

4

0 回答 0