首页 > 解决方案 > 统一桌面应用程序中的 firebase 问题

问题描述

所以我正在为我的期末课程项目创建一个应用程序,我决定使用 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。

如果我没有很好地解释自己,请随时提问。我希望我能得到一些帮助!

标签: c#firebaseunity3d

解决方案


目前 firebase 的 unity sdk 仅支持在 pc 上开发 Android 和 Ios 应用程序。桌面项目是测试版。您可以在下面找到您现在可以在桌面项目中使用的内容。 https://firebase.google.com/docs/unity/setup#:~:text=%20Firebase%20Unity%20SDK%20includes,Windows%2C%20macOS%2C%20and%20Linux。您的问题可能是这样的:“注意:Firebase Unity SDK 桌面支持是一项测试版功能。此功能仅适用于游戏开发期间的工作流程,不适用于公开发布的代码。”


推荐阅读