К сожалению, в Firebase нет предложения OR
. Таким образом, вы не можете фильтровать кандидатов по свойству category
на основе нескольких значений.
Существует решение, которое может работать, но только , если эти значения находятся в диапазоне. В вашем случае вы можете получить всех кандидатов, соответствующих President
или Secretary
с:
ref.child("candidates")
.orderByChild("category")
.startAt("President")
.endAt("Secretary")
Проблема здесь в том, что он также будет соответствовать кандидатам для других категорий, чья категория находится между President
и Secretary
если он существует. Кроме того, вы можете , а не ограничить запрос до 1
или 2
, потому что вы никогда не узнаете, какой из кандидатов наберет наибольшее количество голосов. Это может быть как президент, так и секретарь.
Таким образом, в базе данных Firebase Realtime невозможно передать несколько значений в запрос. Для этого вам нужно выполнить отдельные запросы и объединить результат на клиенте.
Если вы когда-нибудь решите попробовать Cloud Firestore , вы можете найти там запрос whereIn (Строковое поле, Список значений) метод, который может помочь вам решить эту проблему.