在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版本,然后建议的工作。对我来说,解决方案似乎也没有用 - 我尝试索引数据库并确保数据库中有数据,但它没有任何区别。无论如何,我希望有人能帮助我,我会非常感激!