gpt4 book ai didi

c# - 如何将 DataSnapshot 与 Firebase for Unity 一起使用?

转载 作者:行者123 更新时间:2023-11-30 17:30:44 28 4
gpt4 key购买 nike

谁能解释为什么这段代码永远不会成为 Debug.Log("END");打电话?

我正在尝试弄清楚如何在 Unity 中使用 DataSnapshot for Firebase,但在使用数据快照时文档几乎毫无值(value)。我能够获取快照,但使用它过于复杂。

我想对数据库进行一次调用并获取引用“级别”下所有事物的快照

数据库规则如下:

"rules": {
"levels" : {
"levelNumber" : {
"oneStarTime" : 0,
"twoStarTime" : 30,
"threeStarTime" : 45
}
},
"users" : .....

这是我的方法:

void GetLevelSnapshot()
{
FirebaseDatabase.DefaultInstance.GetReference("levels").OrderByChild("levelNumber").GetValueAsync().ContinueWith(task => {
if (task.IsFaulted)
{
// Handle the error...
}
else if (task.IsCompleted)
{
levelSnapshot = task.Result;

foreach(var childSnapshot in levelSnapshot.Children)
{
Debug.Log("BEGIN");
//Debug.Log(childSnapshot.Key);
LevelList.Add(childSnapshot.Key);
Debug.Log("END");
}

}
});
}

最后,我正在寻找一种方法来从根本上迭代指定级别的快照并拉出所有子项。但是,在这一点上,我无法让 childSnapshot.Value 给我任何可读的东西。

非常感谢对此事的任何帮助!

最佳答案

按照以下步骤操作:

用户类:


public class User
{
public string name;
public string[] items;
public string email;

public string ToString()
{
return name + ", " + email + ", " + items.ToString();
}
}

从 Firebase 实时数据库读取数据:

FirebaseDatabase.DefaultInstance.RootReference.Child("users").Child("FIREBASE_UID_HERE").GetValueAsync().ContinueWith(t =>
{
if (t.IsCanceled)
{
Debug.Log("FirebaseDatabaseError: IsCanceled: " + t.Exception);
return;
}

if(t.IsFaulted)
{
Debug.Log("FirebaseDatabaseError: IsFaulted:" + t.Exception);
return;
}

DataSnapshot snapshot = t.Result;
User user = JsonUtility.FromJson<User>(snapshot.GetRawJsonValue());
Debug.Log(user.ToString());

});

关于c# - 如何将 DataSnapshot 与 Firebase for Unity 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49144833/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com