我需要一个firebase查询,它等同于SQL中的此查询:
select * from your_table where id in (123, 345, 679)
Run Code Online (Sandbox Code Playgroud)
你会如何在firebase中做这个逻辑?
谢谢,
Fra*_*len 10
Firebase的查询没有OR
或IN
运算符.因此,您无法轻松将上述查询映射到Firebase.
一种解决方法是实现一个简单地遍历元素的函数:
function loadThese(ids, callback) {
var rows = [];
while (ids.length > 0) {
var id = ids.splice(0,1)[0];
refToTable.child(id).once('value', function(snapshot) {
rows.push(snapshot.val());
});
}
callback(rows);
}
Run Code Online (Sandbox Code Playgroud)
请注意,上面应该是递归的,所以使用它作为灵感而不是复制/粘贴代码.
解决问题的另一种方法(可能更好的方法)是弄清楚为什么选择这三行以及为什么不选择其他行.这些行可能有一些共同之处.一旦了解了它们的共同点,就可以将其建模到数据结构中.
更新(20160408):为了更好地解释为什么Firebase上的速度比您预期的要快得多,请参阅此答案.
归档时间: |
|
查看次数: |
7683 次 |
最近记录: |