如果我不知道它的密钥,如何在Firebase中更新节点?

时间:2016-10-11 19:12:13

标签: ios objective-c firebase firebase-realtime-database

在我的Firebase数据库中,我有一个包含自动生成密钥的节点列表。

"visitors" : {
"-KTmRYgWJkT2nq4i1S1D" : {
  "firstname" : "Jsdfa",
  "lastname" : "Jsdfa",
  "visitorId" : "123"
},
"-KTnUbLCtvdeA6G4p5Xh" : {
  "firstname" : "Jsdfadf",
  "lastname" : "Jfasdgf",
  "visitorId" : "124"
},
"-KToFT1rWLuw6ZbS_xGU" : {
  "firstname" : "Jdfadfa",
  "lastname" : "Jsdfad",
  "visitorId" : "125"
}
}

首先,我找到了一个需要更新的节点,为此,我使用了以下代码:

[[_ref child:@"visitors"] queryOrderedByChild:@"visitorId"] queryEqualToValue:@(visitorId)]

然后我需要更新它或删除它。 Firebase documentation说要做到这一点,我需要一个节点密钥。

这就是问题所在。我试图找到一种如何获取此密钥的方法,但没有任何成功,我找不到任何有关它的信息。任何人都可以帮我解决这个问题吗?任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

您拥有的'visitorId'是必需的Node Key。

要删除此节点,请使用:

[[[_ref child:@"visitors"] child:@(visitorId)] removeValue];

要更新此节点,请使用:

 [[[_ref child:@"visitors"] child:@(visitorId)] updateChildValues:(dictionary)];

这里,dictionary是一个非空的NSDictionary类型,你可以将你的值传递给这个对象中的更新作为键值对。