2016-11-14 23 views
7

Ekran adımı aşağıdaki kodda güncellemek istiyorum. DisplayName'imi nasıl güncelleyebilirim? Benim veritabanı konstrüksiyon aşağıdaki gibidir: Bu kullanıcı tarafından displayName güncellemek istiyorsanızFirebase DB - Firebase Veritabanındaki çocuğun belirli bir değeri nasıl güncellenir

 
-Users 
     -KUanJA9egwmPsJCxXpv 

     displayName:"Test Trainer" 

     email:"[email protected]" 

     uid: "jRXMsNZHR2exqifnR2rXcceEMxF2" 
+0

Veritabanınız bir JSON gibi görünmelidir, verdiğiniz biçim kafa karıştırıcıdır. Ve herhangi bir kod göremiyorum. – Elfayer

cevap

30

:

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

: Alternatif

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

, ayrıca aynı alabilirsiniz Ancak, kullanıcının kimliğini bilmemeniz muhtemeldir, bu durumda, ilk önce şu şekilde bakmanız gerekir:

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

Veri yapınızdaki son bir sonuç olsa da: kullanıcı profillerini saklıyor gibi görünüyorsunuz, ancak bunları bir push ID altında saklıyorsunuz. Eğer iki kez aynı kullanıcı saklıyoruz şansı kaldırmak

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

Böyle bir yapı ile: yapının türü için biz genellikle onların UID altındaki her kullanıcıyı depolamak önerilir. Ayrıca, kullanıcının görüntü adını sorguya gerek duymadan da güncelleyebilirsiniz:

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