【发布时间】:2021-07-18 09:33:31
【问题描述】:
所以我正在为我的期末课程项目创建一个应用程序,并决定使用 Unity。我对 Unity 和 Firebase 都很陌生,但最终我设法让它全部工作。
到目前为止一切都很好,但是当我构建它并对其进行测试时,我意识到 Firebase 无法正常工作。我在这个论坛上进行了搜索,我能找到的只是 Android 或 IOS 问题的解决方案,但据我所知,Firebase 也应该适用于桌面游戏。所以在游戏数据文件夹中我可以找到google-services-desktop.json,为我的firebase 设置google-services.json 拥有的所有数据。
我发现一些帖子说我应该确保在包管理器中更新 SDK,但它甚至没有显示(我猜可能是因为项目是 PC、Mac 和 Linux 独立平台);我发现的其他可能解决方案与 Android 插件文件夹和“res/values/google-services.xml”文件有关,我的项目中显然没有这些文件,因为它不是 Android 游戏。
我认为它应该与 google-services-desktop.json 文件一起使用,但也许我需要其他文件或什么?我已经尝试了一些东西,但我真的想不出任何解决方案。
我的游戏只使用数据库(实时数据库),它没有 Auth 也没有其他包。我主要将它用于记分牌,它可以在 Unity 编辑器中使用,但一旦构建,它就无法在游戏中使用。 我测试了一些修改脚本的东西,但我发现在初始化数据库时代码停止工作。这是一段代码:
FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task =>
{
var dependencyStatus = task.Result;
if (dependencyStatus == DependencyStatus.Available)
{
if (task.IsCompleted)
{
reference = FirebaseDatabase.DefaultInstance.RootReference;
if (LoadsData)
{
GetScores();
}
}
}
else
{
Debug.LogError(string.Format(
"Could not resolve all Firebase dependencies: {0}", dependencyStatus));
}
})
当我调用这个方法时脚本停止了,显然保存和加载数据的方法也不起作用。
项目是PC平台,我使用的是Unity 2019.4.17f1。
如果我没有很好地解释自己,请随时提问。我希望我能得到一些帮助!
【问题讨论】:
-
您能分享一下您可能从控制台看到的错误吗?您可能需要将
ContinueWith与ContinueWithOnMainThread交换以使它们正确打印(Unity 有时很难在后台执行操作)- 因为看起来您正在处理此回调,所以它可能是最安全的无论如何都要使用 ContinueWithOnMainThread。