背景和上下文
我们正在免费构建HTML,以便为广泛分布的机顶盒玩游戏,以便在用户的电视上播放。 盒子本身运行Webkit(WPE)浏览器,并在RDK的修改版本上运行。 该框只能与兼容IPv6的服务器通信,并且所有第三方端点都必须列入白名单。
我们想跟踪有关游戏中用户行为的数据,并将其存储在我们的数据分析师可以查询以创建详细分析的数据库中。 目的是使用此数据来改善游戏调整,游戏设计和创意设计,以改善用户体验并优化保留率。
我们设计的解决方案: 将事件记录到Firebase Analytics,并将该服务链接到BigQuery以进行复杂的查询。
-问题-
第一个问题-当我们尝试从页面的html文件中加载脚本(根据this guide)时,当我们在Google Chrome浏览器中进行测试时,一切工作正常……但是,在智能电视盒上,脚本是已加载并运行不正常。由于某些原因,即使将defer属性添加到html脚本元素中,框上的浏览器也不会按照在页面上定义的顺序加载脚本。这导致在基本Firebase / app程序包完成加载之前,初始化Firebase Analytics程序包的脚本文件的问题。我们还看到了有关“ IDBIndex”的神秘错误,但认为它与脚本加载顺序问题有关...
我们使用webpack将firebase npm package捆绑到了自己的精简脚本文件中,并通过少量逻辑使用应用程序的属性对其进行初始化。目的是将所有基本程序包以及分析和性能监视程序包一次加载在一起,并以正确的顺序对其进行初始化。这是由我们的html文件与游戏逻辑脚本文件分开加载的,其余的游戏逻辑将在运行之前等待“ DOMContentLoaded”事件。
真正的问题出现-现在,上述解决方案仍可以在Google Chrome中完美运行,但是当我们在智能电视硬件上进行测试时,我们仍然会从Firebase分析脚本所使用的IDB包中得到以下错误:
我们认为这是由于在包装盒上运行的浏览器缺少浏览器功能,但也可能与包装盒的硬件有关。该框不提供任何形式的本地持久性存储。所有永久性数据必须保存在“云cookie”中,该cookie只是保存到Smart TV用户帐户并与Smart TV平台的服务器同步的cookie。每次启动应用程序之前,都会从它们的服务器加载此内容。
我与平台的开发人员支持团队一起工作,他们只能说:
”看来该应用正在尝试使用Index DB,该数据库已在 设备,我建议尝试将Firedatabase从Firebase中排除 您正在尝试使用。这应该使它工作。”
据我所知,我无法在Firebase的网络应用插件配置中进行修改。我错了吗?
请让我知道我可以提供的其他信息。提前非常感谢您的帮助!