我想使用 Firebase 来选择已开始但尚未结束或在未来 6 个月内开始的日历事件。
在伪 SQL 中,我想要的是:
WHERE `start` < {6 months from now} AND `end` > {now}
问题是,我知道如何获得这些用例之一,但不知道如何获得两者:
firebase.orderByChild('start').endAt(+new Date() + 15724800000)
firebase.orderByChild('end').startAt(+new Date())
如果我尝试将两者结合起来,则会收到以下错误:
Uncaught Error: Query.orderByChild: You can't combine multiple orderBy calls.
我不想执行两个查询来过滤列表。可能只有几个结果与我想要的查询匹配,但可能有数百万个结果与其中一个查询本身匹配。
最佳答案
https://www.firebase.com/blog/2013-10-01-queries-part-one.html#between
firebase.orderByChild('start')
.startAt(startTime)
.endAt(endTime)
.once('value', function(snap) {
console.log('messages in range', snap.val());
});
关于javascript - Firebase AND 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36894576/