C# 是否可以简化此代码| Unity x Firebase
在一次创建大量新子级时,此代码需要许多行 这似乎也是在浪费网络通信C# 是否可以简化此代码| Unity x Firebase,c#,firebase,unity3d,firebase-realtime-database,C#,Firebase,Unity3d,Firebase Realtime Database,在一次创建大量新子级时,此代码需要许多行 这似乎也是在浪费网络通信 因为FirebaseDatabase.DefaultInstance.GetReference/USERS/是相同的,您能让这更容易吗?从我看到的情况来看,您的代码将创建这个JSON结构 FirebaseDatabase.DefaultInstance.GetReference("/USERS/").Child(id).SetValueAsync(0); FirebaseDatabase.DefaultInstance.GetR
因为FirebaseDatabase.DefaultInstance.GetReference/USERS/是相同的,您能让这更容易吗?从我看到的情况来看,您的代码将创建这个JSON结构
FirebaseDatabase.DefaultInstance.GetReference("/USERS/").Child(id).SetValueAsync(0);
FirebaseDatabase.DefaultInstance.GetReference("/USERS/" + id + "/").Child("A").SetValueAsync(0);
FirebaseDatabase.DefaultInstance.GetReference("/USERS/" + id + "/").Child("B").SetValueAsync(0);
如果是:
您的第一个呼叫不需要,因为它会被第二个呼叫覆盖。Firebase会在向键写入值时自动创建键,并自动删除不再具有值的键
您可以通过传入一个字典来组合其余两个调用:
除非GetReference/USERS/+id+/和GetReference/USERS/.Childid是等效的,否则只有最后两种情况是相同的。您可以生成包含所有数据的json,然后使用SetRawJsonValueAsync一次性写入所有数据。。。
"UERS": {
"$uid": {
"A": 0,
"B": 0,
}
}
FirebaseDatabase.DefaultInstance.GetReference("/USERS/")
.Child(id)
.SetValueAsync(new Dictionary<string, int> {
{ "A", 0 },
{ "B", 0 }
});