2016-11-14 9 views
7

Chcę zaktualizować wyświetlaną nazwę w poniższym kodzie. Jak mogę zaktualizować moje displayName. Moja structer baza jest jak poniżej:Firebase DB - Jak zaktualizować konkretną wartość dziecka w bazie danych Firebase

 
-Users 
     -KUanJA9egwmPsJCxXpv 

     displayName:"Test Trainer" 

     email:"[email protected]" 

     uid: "jRXMsNZHR2exqifnR2rXcceEMxF2" 
+0

Twoja baza danych powinna wyglądać jak JSON, format, który podajesz, jest mylący. I nie widzę żadnego kodu. – Elfayer

Odpowiedz

30

Jeśli chcesz zaktualizować displayname tego użytkownika:

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

Alternatywnie, można również uzyskać to samo z:

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

Ale prawdopodobnie nie znasz identyfikatora użytkownika, w takim przypadku musisz najpierw sprawdzić to:

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

Jedna ostatnia uwaga na temat struktury danych: wydaje się, że przechowujesz profile użytkowników, ale przechowujesz je pod identyfikatorem Push ID. Dla tego typu struktury zwykle zaleca się przechowywać każdemu użytkownikowi pod ich UID:

-Users 
     jRXMsNZHR2exqifnR2rXcceEMxF2 
     displayName:"Test Trainer"  
     email:"[email protected]" 

Dzięki takiej strukturze usunąć wszelkie szanse, że jesteś przechowywanie dwa razy tego samego użytkownika. Ponadto można teraz zaktualizować nazwę wyświetlaną użytkownika bez potrzeby zapytania:

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