AngularFire2 查询 multi-value

AngularFire2 querying by multi-value

我是 Firebase 的新手,在执行任何简单的数据库操作时遇到很多问题。
我需要使用更多属性过滤一组数据。这是我的 Firebase 实时数据库:

  "items" : {
    "-KuJdzzI82tnp1etnR0E:" : {
      "dateEnd" : 1506356341284,
      "dateStart" : 1505751541284,
      "enabled" : 0,
      "title" : "cat"
    },
    "-KuKeCwPtkH_Ub9YMq4C:" : {
      "dateEnd" : 1505665110444,
      "dateStart" : 1505146710444,
      "enabled" : 1,
      "title" : "wolf"
    },
    "-KuKeD1evhc4mw2njQqV:" : {
      "dateEnd" : 1506961268244,
      "dateStart" : 1506442868244,
      "enabled" : 0,
      "title" : "fish"
    }
  }

如果时间戳在 dateStart 和 dateEnd 之间并且启用了 ="1".
,我必须提取标题为 "wolf" 的元素 我在 AngularFire2 文档中读到可以查询列表,但唯一的例子是具有 "orderByChild" 和 "equalTo" 组合的单个过滤器属性。
是否可以使用 AngularFire2 来解决这个问题?
谢谢。

您不能向同一个查询添加两个过滤器。您需要对预期的较小数据集进行查询,然后筛选出结果。

const results = []; // Results

this.db.list('/items', { query: {
    orderByChild: 'title',
    equalTo: 'wolf'
}}).subscribe(items => {
    const startTime = 0; // Some start time
    const endTime = 1; // Some end time

    items.forEach(item => {
        if (item.dateEnd < endTime && item.startTime > startTime) {
            results.push(item);
        }
    });

    // `results` will now be filled with the items.
})