使用nodejs作为admin更新firebase中的值

时间:2016-12-19 09:34:18

标签: node.js firebase firebase-realtime-database

var ref=db.ref("users");
 var upref = ref.child("-KXpWvL3cgzHvFYgArTW");
  upref.update({
         "name": "Ayaz"
   });      

我正在使用这个我正在创建对密钥的引用,但这不是正确的方法,在我的数据库中我有用户然后我有密钥,我有名字。 在这里,我将直接创建一个引用并更新它。我的数据库的结构是:

用户

.... - >键

............. - >名称:“”

那么如何更新特定名称呢?

1 个答案:

答案 0 :(得分:3)

您需要知道要更新的用户的属性。例如,如果您知道要更新的用户的名称,则可以通过执行以下操作来更新用户:

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),因为查询可以匹配多个子节点,因此结果将是匹配用户的列表。

请注意,将用户存储在uid下是自定义的,而不是像您所做的那样在推送ID下存储。通过将它们存储在uid下,您通常可以避免上述查询的需要。