使用JavaScript在Firebase中查找和修改(或删除)匹配节点的确切语法

时间:2015-05-28 12:39:10

标签: javascript firebase

我需要遍历我的firebase并在/users/{currentUser}/things/ thing.feature === "something"中查找特定记录,然后修改或删除该节点。这样做的确切语法是什么?

我查看了文档,但发现了一些无用的语句,比如

  

使用orderByValue()时,子项将按其值排序。

equalTo()的返回值为

  

生成的查询。

1 个答案:

答案 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事件将针对现有子节点和运行查询后添加的节点触发。从本质上讲,它会触发查询的任何新内容。