我使用this question作为参考,因为它非常相似。
如果我有一组定义的键:
-Ke1uhoT3gpHR_VsehIv
-Ke8qAECkZC9ygGW3dEJ
-Ke8qMU7OEfUnuXSlhhl
并且知道它们都存在于节点下(让我们说/items
),我将如何查询它们,同时还要监听这些键的更改(也就是说不使用{{1但是使用myRef.once(value)
我知道这是可能的:
myRef.on('value', snapshot => { ... })
但它是一个静态快照。在听取变化时是否可以这样做?
答案 0 :(得分:1)
我也一直在寻找这个。所以它似乎不存在,只是因为Firebase有一个有效的连接,没有必要为了连接性能而组合'查询'。
因此,您最终会为所有键设置on('value', ...)
个事件侦听器。根据问题中给出的代码片段,您可以为此编写的代码可能如下所示:
var keys = [
"-Ke1uhoT3gpHR_VsehIv",
"-Ke8qAECkZC9ygGW3dEJ",
"-Ke8qMU7OEfUnuXSlhhl"
];
function itemUpdate(snapshot) {
console.log(snapshot.key+": ", snapshot.val());
}
var ref = firebase.database().ref("/items/");
keys.forEach(function(key) {
ref.child(key).on("value", itemUpdate);
});
唯一的改进是定义回调函数,否则你会创建尽可能多的回调函数,因为你有要监听的键,其次是将ref放在var中。