C# Firebase数据库6.16.0在unity 2020中不起作用,但在移动构建中起作用

C# Firebase数据库6.16.0在unity 2020中不起作用,但在移动构建中起作用,c#,firebase,unity3d,firebase-realtime-database,C#,Firebase,Unity3d,Firebase Realtime Database,我最近升级到Firebase 6.16 sdk,因为出现了一个错误,第二次按play键后unity 2020崩溃。乌格拉德修正了那个错误 然而,现在我的实时数据库没有在编辑器中被访问,但它在移动构建中运行良好 我得到的错误是“此url的主机名”https://any_url/2“与数据库url不同”https://any_url/. 我正在传递数据库引用以获取值,这在移动构建中起作用。在编辑器中,它似乎将数据库引用与节点树父引用进行比较。我不明白为什么。在更新到最后一个firebase sdk之

我最近升级到Firebase 6.16 sdk,因为出现了一个错误,第二次按play键后unity 2020崩溃。乌格拉德修正了那个错误

然而,现在我的实时数据库没有在编辑器中被访问,但它在移动构建中运行良好

我得到的错误是“此url的主机名”https://any_url/2“与数据库url不同”https://any_url/. 我正在传递数据库引用以获取值,这在移动构建中起作用。在编辑器中,它似乎将数据库引用与节点树父引用进行比较。我不明白为什么。在更新到最后一个firebase sdk之前,这在unity 2020中起作用

我正在访问实时数据库的一个节点,并将其作为数据库引用传递。我已经用树的主标题初始化了firebase数据库的默认实例

我找不到与此特定错误相关的任何结果,因此我认为这可能也是新的。 这是我面临的完全错误

此url()的主机名与数据库url()不同 调试:日志错误(对象)

private void Start()
{
FirebaseApp.DefaultInstance.SetEditorDatabaseUrl(firebaseDatabaseUrl);
}
公共void SetDatabaseReference(字符串名称)
{
_数据库引用=
FirebaseDatabase.DefaultInstance.GetReferenceFromUrl(GetDatabaseURL(名称));
}
公共IEnumerator LoadSpecialDatabase()
{
DataLoaded=false;
_databaseReference.GetValueAsync().ContinueWith(任务=>
{
GameData loadedData=新GameData();
RoundData RoundData=新的RoundData();
if(task.IsFaulted)
{
Debug.Log(“无法访问”);
返回;
}
else if(任务已完成)
{
Debug.Log(“已访问”);
字符串dataText=task.Result.GetRawJsonValue();
roundData=JsonUtility.FromJson(dataText);
loadedData.allRoundData=roundData;
allRoundData=loadedData.allRoundData;
}
DataLoaded=true;
});
返回新的等待时间(()=>DataLoaded==true);
输出返回数据加载;
}
私有IEnumerator WaitToLoadDB(字符串dbName)
{
DataController.instance.SetDatabaseReference(dbName);
start例程(DataController.instance.LoadSpecialDatabase());
Log(“等待数据加载…”);
yield返回新的WaitUntil(()=>DataController.instance.DataLoaded==true);
if(DataController.instance.DataLoaded==true)
{
dbLoadFinished=true;
}
}

如果删除
SetEditorDatabaseUrl
,是否有效?(不再需要这个电话)你好@PatrickMartin我从来没能让6.16正常工作过。遗憾的是,错误依然存在。没有这个调用“SetEditorDatabaseUrl”,我无法测试它,因为我已经按照您的建议降级到了6.15.2。现在,这是为我做的任务。感谢您的帮助。不用担心,团队正在努力获得一个良好的6.16.1补丁!
    private void Start()
    {
        FirebaseApp.DefaultInstance.SetEditorDatabaseUrl(firebaseDatabaseUrl);
    }

    public void SetDatabaseReference(string name)
    {
        _databaseReference = 
        FirebaseDatabase.DefaultInstance.GetReferenceFromUrl(GetDatabaseURL(name));
    }

    public IEnumerator LoadParticularDatabase()
    {
        DataLoaded = false;
        
        _databaseReference.GetValueAsync().ContinueWith(task =>
        {
            GameData loadedData = new GameData();
            RoundData roundData = new RoundData();
            if (task.IsFaulted)
            {
                Debug.Log("Couldn't access");
                return;
            }
            else if (task.IsCompleted)
            {
                Debug.Log("Accessed");
                string dataText = task.Result.GetRawJsonValue();
               
                roundData = JsonUtility.FromJson<RoundData>(dataText);
                loadedData.allRoundData = roundData;
                allRoundData = loadedData.allRoundData;
            }
            DataLoaded = true;
        });
        
        yield return new WaitUntil(() => DataLoaded == true);
        
        yield return DataLoaded;
    }

    private IEnumerator WaitToLoadDB(string dbName)
    {
        DataController.instance.SetDatabaseReference(dbName);
        
        StartCoroutine(DataController.instance.LoadParticularDatabase());
        Debug.Log("Waiting for data to load...");
        yield return new WaitUntil(() => DataController.instance.DataLoaded == true);

        if (DataController.instance.DataLoaded == true)
        {
            dbLoadFinished = true;
        }
    }