firebase相当于sql,其中在()

firebase相当于sql,其中在(),firebase,Firebase,我需要一个与SQL中的此查询等效的firebase查询: select * from your_table where id in (123, 345, 679) 您将如何在firebase中执行此逻辑 thx,Firebase的查询在操作符中没有或或。因此,您无法轻松地将上述查询映射到Firebase 一种解决方法是实现一个简单地在元素上循环的函数: function loadThese(ids, callback) { var rows = []; while (ids.lengt

我需要一个与SQL中的此查询等效的firebase查询:

select * from your_table where id in (123, 345, 679)
您将如何在firebase中执行此逻辑


thx,

Firebase的查询在操作符中没有
。因此,您无法轻松地将上述查询映射到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);
}
请注意,上面的代码可能是递归的,因此请将其用作灵感,而不是复制/粘贴代码

解决这个问题的另一个方法(可能是更好的方法)是找出为什么选择这三行,为什么不选择其他行。这些行可能有一些共同之处。一旦知道它们的共同点,就可以将其建模到数据结构中


更新(20160408):要很好地解释为什么以上在Firebase上的速度比您预期的快得多,请参阅。

Frank,thx获取您的答案。。。我正在使用geofire,我认为按照你的建议做是没有效率的。geoQuery.on(“key_entered”,函数(key,location,distance){ref.child(“tikis”).child(key)。一旦(“value”,函数(snap){//使用snap做事情})。