firebase相当于sql在哪里in()
我需要一个与SQL中的查询等效的firebase查询:
select * from your_table where id in (123, 345, 679)
你如何在火力点做这个逻辑?
谢谢,
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); }
请注意,上面应该是recursion的,所以使用它来获取灵感,而不是复制/粘贴代码。
解决这个问题的另一个(也许更好的办法)是弄清为什么select这三行,为什么不选其他的。 这些行可能有一些共同点。 一旦你知道他们有什么共同点,你可以将其build模成数据结构。
更新(20160408):为了解释为什么上述内容在Firebase上的速度比您预期的要快得多,请参阅此答案 。