所以,我的 firebase 结构如下:
"Posts" : {
"0" : {
"code": 12345TG4
"Likes" : 59
},
"1" : {
"code": RT560451
"Likes" : 12
}
}
理想情况下我想做的是:
var updateData = {
Likes: 74
}
Posts.child(id).update(updateData);
但我事先并不知道UiD,但我确实有‘code’的值,它本身就是一个唯一的值。
如何创建一个查询,该查询可以根据 Firebase 中已知的“代码”值更新“喜欢”值?
正如 Doug 评论和 Rodrigo 所示,您必须首先根据其代码查询该项目,然后才能更新它:
var ref = firebase.database().ref();
ref.child("Posts").orderByChild("code").equalTo("12345TG4").once("value", function(snapshot) {
snapshot.forEach(function(child) {
child.ref.update(updateData);
});
});
改变你的模型
虽然上面的方法可行,但您应该考虑为什么将帖子存储在数组索引下,那么它们也已经有了唯一的 ID。在 Firebase 等 NoSQL 解决方案中,更惯用的做法是将帖子存储在代码下:
"Posts" : {
"12345TG4" : {
"Likes" : 59
},
"RT560451" : {
"Likes" : 12
}
}
您将更新为:
ref.child("Posts").child("12345TG4").update({ Likes: 74 });
Or even:
"PostLikes" : {
"12345TG4" : 59,
"RT560451" : 12
}
进而:
ref.child("PostLikes/12345TG4/Likes").set(74);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)