(Firebase Unity SDK)在GetValueAsync()

时间:2017-07-16 22:18:15

标签: c# firebase unity3d firebase-realtime-database

在Unity中使用Firebase SDK,当我尝试为我制作的三个mingames组成一个简单的排行榜时。我遇到的问题是使用GetValueAsync()ContinueWith()访问数据库,它似乎每次都完全跳过ContinueWith()。这是我的代码:

string scoreDisplay(string game, string pos)
{
    FirebaseApp.DefaultInstance.SetEditorDatabaseUrl("https://shape-arcade-leaderboard.firebaseio.com/");

    string score = "error";

    FirebaseDatabase.DefaultInstance.RootReference.GetValueAsync().ContinueWith(task =>
    {
        if (task.IsCompleted)
        {
            DataSnapshot data = task.Result;
            score = data.Child("scores").Child(game).Child(pos).Value.ToString();
            return score;
        }
        else if (task.IsFaulted)
        {
            score = "errorfaulted";
            return score;
        }
        else
        {
            return score;
        }
    });

    return null;
}

因此,该函数将获取相关迷你游戏的名称以及要从中检索数据的位置子项。它正在尝试访问我的数据库并下载它的快照,此时它应该进入ContinueWith()功能。然后,如果完成它应该访问数据库和相关的儿童游戏,然后访问该游戏中的子位置并返回其值。如果出现故障,它应该返回“errorfaulted”,否则它应该返回“error”。但是,它只是在底部返回null,因为它似乎永远不会运行ContinueWith()

我知道在Stack Overflow Question提出了类似的问题 但它似乎没有其他答案,等待下一个beta版本,然后建议的工作。对我来说,解决方案似乎也没有用 - 我尝试索引数据库并确保数据库中有数据,但它没有任何区别。无论如何,我希望有人能帮助我,我会非常感激!

0 个答案:

没有答案