Теперь я хочу получить список номеров, доступных на определенный промежуток времени.
С учетом того, что вы сохраняете бронирование, номер доступен, если на это время нет бронирования. Cloud Firestore не может запрашивать отсутствие данных, поэтому в вашей текущей модели этот запрос будет невозможен.
Если бы вы сохранили доступные слоты в коллекции Reservations
каждой комнаты, вы могли бы выполнять запросы по всемReservations
коллекций, чтобы получить доступные слоты во всех комнатах. Но обратите внимание, что результатом этого запроса являются документы из Reservations
, а не отдельные комнаты;вам нужно будет загрузить каждую комнату отдельно, если вам нужна информация из этого.
В качестве альтернативы, вы можете сохранить список еще доступных слотов в каждом документе комнаты. При этом вы можете выполнить обычный запрос по всем комнатам, чтобы увидеть, какие из них еще доступны, а затем выполнить обновление документа комнаты и его коллекции Reservations
в транзакции.