我想在下面的代码中更新我的显示名称。如何更新 displayName
?
我的数据库结构是:
-用户
-KuanJA9egwmPsJCxXpv
displayName:"测试培训师"
电子邮件:“test@gmail.com”
uid:“jRXMsNZHR2exqifnR2rXcceEMxF2”
最佳答案
如果要更新此用户的 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" });
关于javascript - Firebase DB - 如何更新 Firebase 数据库中子项的特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40589397/