2016-12-19 7 views
0
var ref=db.ref("users"); 
var upref = ref.child("-KXpWvL3cgzHvFYgArTW"); 
    upref.update({ 
     "name": "Ayaz" 
    });  

私はこれを使用していますが、私はキーの参照を作成していますが、これは正しい方法ではありません、私のデータベースにはユーザーがいて、名前。 ここでは、キーへの参照を直接作成して更新しています。私のDBの構造は次のとおりです。adminとしてnodejsを使用してfirebaseの値を更新する

ユーザー

.... - >キー

............. - >名前: ""

特定の名前を更新するにはどうすればよいですか?

+0

申し訳ありませんが、私はあなたがしようとしていることを理解しています。コードは正常に見えます。 –

答えて

2

更新するユーザーのプロパティを知る必要があります。たとえば、あなたが更新することをユーザ(複数可)の名前を知っていれば、あなたがやって、ユーザーを更新することができます。

var query = ref.child("users").orderByChild("name").equalTo("Ayz"); 
query.once("value", function(snapshot) { 
    snapshot.forEach(function(userSnapshot) { 
     userSnapshot.ref().update({ name: "Ayaz" }); 
    }); 
}); 

ループ(snapshot.forEach)クエリが複数の子ノードを一致させることができるので、必要とされています結果は一致するユーザーのリストになります。

プッシュIDではなく、uidにユーザーを保存するのが習慣であることに注意してください。 uidの下にそれらを保存することで、上記のクエリの必要性をしばしば防ぐことができます。

+0

このコードスニペットを使用しようとしています。私は更新イベントを取得しています。データベースは変更されません。 –

+0

StackOverflowは非常に非効率的なデバッグメカニズムですので、よりわかりやすいようにしてください。コードをステップ実行しましたか?それはデータベースから価値を得ていますか?エラーが記録されていますか? –

+0

全く変更はありませんが、動作していません。エラーはありません... –

関連する問題