У меня следующая структура БД, тогда мне нужно получить данные, отфильтрованные по полю "дата". Как я могу это сделать?

root {
  places {
    $placeUid {
      $bookingUid {
        date: String
        name: String
      }
    }
  }
}

Мой запрос выглядит так, но он не работает:

refPlaces = Firebase.database.getReference("places")
refPlaces.orderByChild("date").equalTo("14.10.2020").addValueEventListener(…)
0
Konstantin Konopko 7 Окт 2020 в 17:46

1 ответ

Лучший ответ

Запросы Firebase работают с плоским списком дочерних узлов, где значение, которое вы заказываете / фильтруете, находится в фиксированном пути под каждым прямым дочерним узлом. Поскольку у вас есть два динамических уровня под places, вы не сможете запросить его.

Решение состоит в том, чтобы создать плоский список бронирований для этого варианта использования, в котором каждое бронирование будет иметь Uid в качестве свойства в каждом бронировании.

Подробнее об этом см .:

1
Frank van Puffelen 7 Окт 2020 в 16:38