Совместное использование документов в Firestore без сканирования всей коллекции - PullRequest
0 голосов
/ 01 марта 2019

Я изучаю основы Firestore и пытаюсь создать приложение, которое позволяет user1 делиться документом с user2 / 3/4 и т. Д.

В целях выставления счетов каждый запрос, приводящий к чтению документа, учитывается.к стоимости.Поэтому я не хочу следовать подходу добавления электронных писем user2 / 3/4 и т. Д. В переменную sharedWith для ввода типа: массив или структура типа карты, так как я полагаю, что тогда каждому пользователю придется сканировать всю коллекцию и выбиратьдокументы, где появляется их электронная почта.

Есть ли другой подход к этому, когда пользователь1 может программно предоставить пользователю user2 / 3/4 один конкретный документ?

1 Ответ

0 голосов
/ 01 марта 2019

В целях выставления счетов каждый запрос, в результате которого читается документ, учитывается в стоимости.

Это верно и согласно официальной документации, касающейся Cloud Firestore :

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

Таким образом, с вас также взимается платаодин документ прочитан, даже если ваш запрос не возвращает никаких результатов.

Я считаю, что тогда каждому пользователю придется сканировать всю коллекцию и выбирать документы там, где появляется электронная почта.

Это тоже правильно.Итак, давайте предположим, что адрес электронной почты, который вы ищете, существует в документе, который состоит из набора из 10 тыс. Документов.Поэтому, если вы запрашиваете базу данных только для этого конкретного документа, вам будет предъявлено обвинение в только в одном документе, прочитанном , а не в этих 10k.Таким образом, с вас взимается плата в зависимости от количества предметов, которые вы получаете, а не от количества товаров, которые вы запрашиваете у них.И это доступно для первого запроса, когда вы получаете данные с серверов Firebase.Если за это время ничего не изменилось, во второй раз вы получаете данные из кэша, поскольку Firestore по умолчанию включает автономное сохранение .Что означает, что вы не платите за прочтение любого другого документа.

Есть ли другой подход к этому, когда пользователь1 может программно предоставить пользователю user2 / 3/4 один конкретный документ?

Без записи данных в базу данных нет.Поэтому вы должны добавить идентификаторы или адреса электронной почты в нужные документы и выполнить запрос в соответствии с ним.

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