如何更新firebase中密钥的特定(第n个)子项

时间:2017-08-18 03:47:51

标签: javascript firebase firebase-realtime-database

我知道Firebase有一些非常基本的查询功能, orderBy limitTo startAt endAt 。 ...等。要进行更新,请使用更新设置等方法。在我的情况下,我有这样的结构:

enter image description here

因此, PIN 上有一个键列表,如何使用javascript更新特定键的子 pin

例如,我现在想要更新第二个键的 pin 。现在它 20 ,我想将其设置为 30 。但请注意,列表中大多数都有超过2个键,所以可能以后我想更新第四个生成密钥的子 pin

我该怎么做?

1 个答案:

答案 0 :(得分:1)

像“第二”或“第四”这样的相对排序在这里毫无用处。如果要使用键-KrnO...Ho更新节点的引脚,可以使用以下命令更新:

firebase.database().ref("PIN/`-KrnO...Ho/PIN").set(30);

如果您想更新名为cindy的用户的PIN,首先需要查询以确定她的密钥:

firebase.database().ref("PIN").orderByChild("name").equalTo("cindy").once("value", function(snapshot) {
  snapshot.forEach(function(user) {
    user.ref.child("PIN").set(30);
  });
})

第二个片段中的循环是必需的,因为技术上可以有多个名为cindy的用户。