我有一个使用firebase.ref()。push()方法生成的id数组。 例如 -
myarray =
[-KoDeiUiqsMKDuXuwhzi,
-KoDrz6ngJtNrr51tguD,
-KoDyC-_ZeSIAN1_oFk4]
我有一个项目节点,其中一些与这些ID匹配 -
/mynode
--KoDeiUiqsMKDuXuwhzi
-itemprop1 : "abc"
-itemprop2 : "xyz"
-id : "KoDeiUiqsMKDuXuwhzi"
--KnurYH554YNW6bcWch5
-itemprop1 : "opq"
-itemprop2 : "zyc"
-id : "KnurYH554YNW6bcWch5"
--KoDrz6ngJtNrr51tguD
-itemprop1 : "mon"
-itemprop2 : "ooo"
-id : "KoDrz6ngJtNrr51tguD"
..
..
..
..
..等等..基本上id的数组是这个节点的子集。 我想从这个节点中的id匹配的节点中检索所有对象。 目前我的方式是这样的 -
firebase.database().ref("mynode").once('value').then(function(snap){
snap.forEach(function(childsnap){
if(myarray.indexOf(childsnap.key) != -1){
//add to result
}
})
})
虽然这段代码有效,但我想我可以使用orderByChild,startAt和endAt过滤来获取对象列表。 有没有办法通过过滤而不是获取所有数据然后过滤来获得结果?它会比这段代码更有效吗?