以下のコードで表示名を更新したい。 displayNameを更新するにはどうすればよいですか。私のデータベース構造は以下の通りです:
-Users -KUanJA9egwmPsJCxXpv displayName: "Test Trainer" email: "[email protected]" 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で保存しています。このタイプの構造では、通常、各ユーザーをUIDで保存することをお勧めします。
-Users
jRXMsNZHR2exqifnR2rXcceEMxF2
displayName:"Test Trainer"
email:"[email protected]"
このような構造を使用すると、同じユーザーを2回保存する可能性がなくなります。さらに、クエリを必要とせずにユーザーの表示名を更新できるようになりました。
var currentUser = firebase.auth().currentUser;
db.ref("-Users/"+currentUser.uid).update({ displayName: "New trainer" });