gpt4 book ai didi

android - 如何在我的 Unity 项目中翻译 google-services.json,以便我的 firebase 集成在 buidl 中工作?

转载 作者:行者123 更新时间:2023-12-03 06:28:43 30 4
gpt4 key购买 nike

我正在尝试在 my Oculus Quest app 中使用 FireBase 实时数据库。 ,但似乎谷歌服务在我构建时没有正确初始化。

在我的 Unity 编辑器中一切正常,我没有收到任何错误。当我构建 quest 并使用 ADB Logcat 时,我收到此错误:

NullReferenceException: Object reference not set to an instance of an object at QuestionnaireManager.GiveAnswer (System.Int32 answer) [0x00035] in <7ee908d4e96e4aa6a0d12545247f5f0d>:0 at UnityEngine.Events.InvokableCall1[T1].Invoke (T1 args0) [0x00010] in <7717a69884ed4b33971896d8ee45333e>:0
at UnityEngine.Events.CachedInvokableCall
1[T].Invoke (System.Object[] args) [0x00001] in <7717a69884ed4b33971896d8ee45333e>:0 at UnityEngine.Events.UnityEvent.Invoke () [0x00074] in <7717a69884ed4b33971896d8ee45333e>:0 at PhysicsButton.OnCollisionExit (UnityEngine.Collision other) [0x0002c] in <7ee908d4e96e4aa6a0d12545247f5f0d>:0



This blog post导致我认为 XML 文件未正确初始化,但由于我使用 Unity 并且对 android-native、gradle 或 gradle 命令知之甚少,因此无法按照他们列出的步骤进行操作。

任何帮助是极大的赞赏!

最佳答案

我在该代码段中没有看到任何与 Firebase 相关的特定日志,但无论哪种方式,Oculus Quest 都将是一个有趣的平台。

将 Firebase 与 Unity 项目集成时,您应该做的第一件事是调用 CheckAndFixDependenciesAsync .它的作用是检查用户是否拥有 Google Play Services 的最新版本。在安卓上。在 iOS 和桌面上,这个调用什么都不做。

Google Play 服务也仅作为许可服务提供(据我所知),它不是 Android 开源项目的一部分。因此,主流的 Android 手机和平板电脑往往可以访问它,但 fork Android 的设备(例如 Fire TV)却没有。据我所知,Oculus Quest 运行的是没有 Google Play 服务的 Android fork 版本。如果这个假设是准确的,那么 CheckAndFixDependenciesAsync永远不会返回DependencyStatus.Available .

现在您的具体问题是关于实时数据库,它实际上不需要 Google Play 服务(一个好的经验法则是,如果它是 open source,它不需要 Play 服务。但这不一定是保证)。但是,如果您使用 Firebase 身份验证,您可能会这样做以有效地使用实时数据库规则,那么这将需要 Play Services,并且绝对不会在 Android 上按原样运行。尽管这可能适用于本地库级别,但请记住 CheckAndFixDependenciesAsync如果您的设备不支持 Play 服务,将会失败。在这种情况下,不知FirebaseApp.DefaultInstance可以永远是非- null ,因此我不知道 Database.DefaultInstance可以永远是非- null (事实上​​,this bug 似乎不是好兆头)。

在这一点上,你有什么选择呢?

如果您只是为自己开发应用程序,也许您可​​以侧载 Play Services。我通常会建议不要这样做,因为您要从可能声名狼藉的来源中提取核心功能。如果你这样做,一切可能都会奏效(在你这样做之前在手机上测试以防万一)。

您可以纯粹使用 REST API。我看过this plugin提出一点,但你会错过 Firebase Games 团队为真正利用 Android 的原生功能所做的一些工作(其中一个副作用毕竟是整个 Play 商店的依赖)。

您可以通过 Cloud Function 公开整个后端s (或 Cloud Run 如果你想 stay in the C# world )。如果您使用普通(与可调用)函数,这些是简单的休息调用。

您也可以使用 Unity's JNI interop尝试直接使用原生 Android SDK。这可能有点痛苦(JNI 从来都不是有趣的,即使有助手),但你甚至可以使用 this project解决身份验证问题!

哦,最重要的是,归档 feature request .即使 the bug被锁定时,获得更多关于需要什么以及为什么需要的输入是很有用的。因此,请包括您想要定位的设备、原因、您需要 Firebase 做什么,以及您愿意分享的有关您的游戏的任何其他信息。

关于android - 如何在我的 Unity 项目中翻译 google-services.json,以便我的 firebase 集成在 buidl 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61492669/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com