Javascript Firebase和查询

Javascript Firebase和查询,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我想使用Firebase来选择已经开始但尚未结束的日历事件,或者在未来6个月内开始的日历事件 在伪SQL中,我想要的是: WHERE `start` < {6 months from now} AND `end` > {now} 如果我尝试将两者结合起来,则会出现以下错误: 未捕获错误:Query.orderByChild:不能组合多个orderBy调用 我不想为了过滤列表而执行两个查询。可能只有几个结果与我想要的查询相匹配,但可能有数百万个结果与其中任何一个查询相匹配。 密切相

我想使用Firebase来选择已经开始但尚未结束的日历事件,或者在未来6个月内开始的日历事件

在伪SQL中,我想要的是:

WHERE `start` < {6 months from now} AND `end` > {now}
如果我尝试将两者结合起来,则会出现以下错误:

未捕获错误:Query.orderByChild:不能组合多个orderBy调用

我不想为了过滤列表而执行两个查询。可能只有几个结果与我想要的查询相匹配,但可能有数百万个结果与其中任何一个查询相匹配。


密切相关:。您是否已经查看了是否可以按此处所述组合
开始
结束
属性?@FrankvanPuffelen问题是,我试图拉取的事件可能已经开始,因此我不能使用
.startAt(开始)
,因为这样会忽略任何已经开始的事件。我不想对两个查询执行此操作,因为这两个查询都可能返回大量数据。返回在未来6个月内开始(或已经开始)的任何内容都需要提取开始日期已过的每个事件。密切相关:。您是否已经查看了是否可以按此处所述组合
开始
结束
属性?@FrankvanPuffelen问题是,我试图拉取的事件可能已经开始,因此我不能使用
.startAt(开始)
,因为这样会忽略任何已经开始的事件。我不想对两个查询执行此操作,因为这两个查询都可能返回大量数据。返回任何在未来6个月内开始(或已经开始)的内容都需要提取开始日期已过的每个事件。我不查找特定范围内的消息。如果事件已经开始但尚未结束,则调用
.startAt(startTime)
会将其过滤掉。这不是我想要的。我没有在特定范围内查找邮件。如果事件已经开始但尚未结束,则调用
.startAt(startTime)
会将其过滤掉。这不是我想要的。
firebase.orderByChild('start').endAt(+new Date() + 15724800000)
firebase.orderByChild('end').startAt(+new Date())
firebase.orderByChild('start')
.startAt(startTime)
.endAt(endTime)
.once('value', function(snap) {
   console.log('messages in range', snap.val());
});