firebase相当于sql所在的()

时间:2015-04-10 11:18:20

标签: firebase

我需要一个firebase查询,它等同于SQL中的这个查询:

select * from your_table where id in (123, 345, 679)

你如何在firebase中执行此逻辑?

THX,

1 个答案:

答案 0 :(得分:9)

Firebase的查询没有ORIN运算符。因此,您无法轻松将上述查询映射到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上的速度比您预期的要快得多,请参阅this answer