在我的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说要做到这一点,我需要一个节点密钥。
这就是问题所在。我试图找到一种如何获取此密钥的方法,但没有任何成功,我找不到任何有关它的信息。任何人都可以帮我解决这个问题吗?任何帮助都将受到高度赞赏。
答案 0 :(得分:0)
您拥有的'visitorId'是必需的Node Key。
要删除此节点,请使用:
[[[_ref child:@"visitors"] child:@(visitorId)] removeValue];
要更新此节点,请使用:
[[[_ref child:@"visitors"] child:@(visitorId)] updateChildValues:(dictionary)];
这里,dictionary是一个非空的NSDictionary类型,你可以将你的值传递给这个对象中的更新作为键值对。