Запросы Firebase работают с простым списком дочерних узлов в расположении, которое вы запрашиваете.Они могут упорядочивать / фильтровать только те значения, которые находятся по известному пути под каждым прямым потомком.
Поскольку ваши значения ниже insurances/Animals/???
, он не может запрашивать эти значения.
Обычно вам нужно решить эту проблему одним из следующих способов:
- Создание плоского списка всех животных для запроса.У каждого животного в этом списке должно быть хотя бы значение, которое вы хотите отфильтровать, но оно может быть полной копией информации о животном для каждого пользователя.
- Предоставление каждому пользователю свойства, указывающего, есть ли у него застрахованное животное.или количество застрахованных животных, которых они имеют, и обновите их при обновлении страховки.Таким образом, вы можете запросить с помощью
firebase.database().ref("users").orderByChild("insuredAnimalCount").startAt(1)
.
Также посмотрите мой ответ здесь: Запрос Firebase с двойным вложением