Я хочу использовать Firebase для выбора событий календаря, которые либо уже начались, но не закончились, или которые начинаются в течение следующих 6 месяцев.Firebase AND query
В псевдо-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.
Я не желающему выполнять два запроса, чтобы отфильтровать список вниз. Вероятно, будет только несколько результатов, которые соответствуют запросу, которое я хочу, но могут быть миллионы результатов, которые соответствуют одному из запросов сами по себе.
тесно связано: [Query основан на нескольких, где положения в firebase] (http://stackoverflow.com/questions/26700924/query-based-on-multiple-where-clauses-in -firebase). Вы уже посмотрели, можете ли вы объединить свойства 'start' и' end', как описано там? –
@FrankvanPuffelen проблема в том, что события, которые я пытаюсь вытащить, возможно, уже начались, поэтому я не могу использовать '.startAt (start)', потому что это игнорирует все, что уже началось. Я не хочу делать это с двумя запросами, потому что оба этих запроса могут возвращать большое количество данных. Возвращение всего, что начинается в следующие 6 месяцев (или уже началось), потребует вытягивания каждого события, дата начала которого уже прошла. –