我需要遍历我的firebase并在/users/{currentUser}/things/
thing.feature === "something"
中查找特定记录,然后修改或删除该节点。这样做的确切语法是什么?
我查看了文档,但发现了一些无用的语句,比如
使用orderByValue()时,子项将按其值排序。
或equalTo()
的返回值为
生成的查询。
答案 0 :(得分:3)
Firebase documentation on querying中的后续示例之一给出了一个示例。
var ref = new Firebase("https://dinosaur-facts.firebaseio.com/dinosaurs");
ref.orderByChild("height").equalTo(25).on("child_added", function(snapshot) {
console.log(snapshot.key());
});
当应用于您的问题时,它会转换为:
var ref = new Firebase('https://<your-app>.firebaseio.com/user');
var things = ref.child(yourUserId).child('things');
var query = things.orderByChild('feature').equalTo('something');
query.on('child_added', function(snapshot) {
console.log('The value of the thing is now: '+JSON.stringify(snapshot.val()));
// We can remove this node with
// snapshot.ref().remove
// This will fire a child_removed event
// We can update this node with
// snapshot.ref().update({ name: 'Linda H' });
// This in turn will fire a child_changed event
});
如评论中所述,child_added
事件将针对现有子节点和运行查询后添加的节点触发。从本质上讲,它会触发查询的任何新内容。