我想在下面的代码中更新我的显示名称。我该如何更新displayName
?
我的数据库结构是:
-用户 -KUanJA9egwmPsJCxXpv 显示名称:“测试培训师” 电子邮件:“test@gmail.com” uid: "jRXMsNZHR2exqifnR2rXcceEMxF2"
我想在下面的代码中更新我的显示名称。我该如何更新displayName
?
我的数据库结构是:
-用户 -KUanJA9egwmPsJCxXpv 显示名称:“测试培训师” 电子邮件:“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" });
使用此代码更新数据库的任何子项
-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);