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 }
        });