【问题标题】:Firebase DB - How to update particular value of child in Firebase DatabaseFirebase DB - 如何更新 Firebase 数据库中子项的特定值
【发布时间】:2017-03-28 03:05:33
【问题描述】:

我想在下面的代码中更新我的显示名称。如何更新displayName

我的数据库结构是:

-用户 -KuanJA9egwmPsJCxXpv displayName:"测试培训师" 电子邮件:“test@gmail.com” uid:“jRXMsNZHR2exqifnR2rXcceEMxF2”

【问题讨论】:

  • 您的数据库应该看起来像 JSON,您提供的格式令人困惑。而且我看不到任何代码。

标签: javascript firebase firebase-realtime-database


【解决方案1】:

如果要更新此用户的 displayName:

var db = firebase.database();
db.ref("-Users/-KUanJA9egwmPsJCxXpv/displayName").set("New trainer");

或者,您也可以通过以下方式获得相同的结果:

db.ref("-Users/-KUanJA9egwmPsJCxXpv").update({ displayName: "New trainer" });

但您可能不知道用户的 ID,在这种情况下您需要先查找:

var query = db.ref("-Users").orderByChild("uid").equalTo("jRXMsNZHR2exqifnR2rXcceEMxF2");
query.once("child_added", function(snapshot) {
  snapshot.ref.update({ displayName: "New trainer" })
});

关于您的数据结构的最后一点说明:您似乎在存储用户配置文件,但您将它们存储在推送 ID 下。对于这种类型的结构,我们通常建议您将每个用户存储在他们的唯一 ID 下:

-Users
      jRXMsNZHR2exqifnR2rXcceEMxF2
         displayName:"Test Trainer"    
         email:"test@gmail.com"

使用这样的结构,您可以消除将同一用户存储两次的机会。此外,您现在无需查询即可更新用户的显示名称:

var currentUser = firebase.auth().currentUser;
db.ref("-Users/"+currentUser.uid).update({ displayName: "New trainer" });

【讨论】:

    【解决方案2】:

    如何查看是否更新?

    回答: https://stackoverflow.com/a/44123067/3156040

    我也在找那个。

    【讨论】:

      【解决方案3】:

      使用此代码更新任何子数据库

      -Users
            -KUanJA9egwmPsJCxXpv
      
               displayName:"Test Trainer"
      
               email:"test@gmail.com"
      
               uid: "jRXMsNZHR2exqifnR2rXcceEMxF2"
      
      
      Database reference = FirebaseDatabase.getInstance().getReference("Users").child("KUanJA9egwmPsJCxXpv");
                      Map<String, Object> hashMap = new HashMap<>();
                      hashMap.put("email", newValue);
                      reference.updateChildren(hashMap);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-07-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多