Firebase DB - How to update particular value of child in Firebase Database

前端 未结 2 1761
时光说笑
时光说笑 2020-12-02 13:24

I want to update my display name in the code below. How can I update displayName?

My database structure is:

-Users
      -KUanJA9egwmPsJCxXpv         


        
相关标签:
2条回答
  • 2020-12-02 14:04

    How to check whether it's updated or not?

    Answer: https://stackoverflow.com/a/44123067/3156040

    I was looking for that as well.

    0 讨论(0)
  • 2020-12-02 14:08

    If you want to update the displayName of this user:

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

    Alternatively, you can also get the same with:

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

    But it's likely you don't know the ID of the user, in which case you need to look that up first:

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

    One final remark on your data structure though: you seem to be storing user profiles, but you're storing them under a push ID. For this type of structure we usually recommend that you store each user under their UID:

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

    With such a structure you remove any chance that you're storing the same user twice. Plus, you can now update the user's display name without needing a query:

    var currentUser = firebase.auth().currentUser;
    db.ref("-Users/"+currentUser.uid).update({ displayName: "New trainer" });
    
    0 讨论(0)
提交回复
热议问题