firebase - 为什么 Smart TV Web 应用上会发生此 Firebase IDBIndex 错误,是否有解决方法?
问题描述
背景与背景
我们正在构建免费的 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 的网络应用插件配置中修改的东西。我弄错了吗?
请让我知道我可以提供哪些其他信息。非常感谢您的帮助!
解决方案
推荐阅读
- json - 如何在 Flutter 中循环输入 json
- python - 如何创建一个应用 z-score 和交叉验证的 scikit-learn 管道?
- .net-core - dotnet build, exclude only one dependency from build
- android - Android - 在三星设备上使用 USSD API 运行 USSD *#0011#
- python - 如何在曲线的不同点绘制 x 和 y 截距
- c# - 有没有办法从现有的 excel 文件创建现有字体的列表?
- node.js - 将用户 ID 保存在 JSON 文件中
- reactjs - 将内联 reducer 函数传递给 React.useReducer
- facebook - 将链接动态传递给 Facebook 分享按钮
- php - jquery倒计时无效日期倒计时