Cloud Firestore: запрос доступности элемента по временной метке - PullRequest
1 голос
/ 06 июля 2019

Представьте себе приложение, похожее на Airbnb.Коллекция rentals содержит документы с полями start и end типа отметки времени, в которых записываются дата начала и окончания аренды (только год, месяц и день).В моем приложении Flutter, когда пользователь хочет сделать новый запрос на аренду, мне нужно проверить, не мешает ли этот запрос существующим арендным платам.Было бы слишком много для хранения массива Timestamp объектов, которые содержат количество дней, а затем используйте arrayContains для запроса / проверки?

Например:

rental #1
    start: Jan 1
    end: Jan 2
    days: [Jan 1, Jan 2]
rental #2
    start: Jan 6
    end: Jan 10
    days: [Jan 6, Jan 7, Jan 8, Jan 9, Jan 10]

Предположим,Пользователь хочет забронировать аренду на 3-4 января.Я бы запустил цикл и запросил документы с arrayContains: Jan 3 и arrayContains: Jan 4, и если он вернет какие-либо документы, я знаю, что дата запроса на аренду недействительна.Максимальное количество дней, которое пользователь может арендовать, составляет 27 дней, хотя я ожидаю, что средняя продолжительность аренды будет длиться менее 7 дней.Является ли мой метод жизнеспособным?Я мог бы изменить максимальную продолжительность аренды с 27 до 14, возможно.

Другой метод, который я придумал, это запросить аренду непосредственно до и после желаемого времени получения.Поэтому, используя приведенный выше пример, если желаемая дата аренды - 3-4 января, я бы запросил ближайшую аренду, которая заканчивается до 3 января, и ближайшую аренду, которая начинается после 4 января. Однако проблема, с которой я сталкиваюсь, заключается в том, чтоесли пользователь в прокате № 1 решит продлить аренду с 1-2 января до 1-3 января (до того, как наш пользователь сможет обновить свое приложение)?Или, если конкретный список не имеет истории проката, связанной с ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...