Значение чтения документа при прослушивании результатов запроса в Firestore - PullRequest
0 голосов
/ 03 марта 2020

У меня есть коллекция, в которой хранятся местоположения, и я реализовал функцию поиска, которая возвращает предложения на основе строки запроса. Это что-то вроде:

 if (query.length > 2) {
   performSearch(query);
}

Таким образом, каждый раз, когда пользователь вводит символ, а их больше 2, он вызывает функцию performSearch(). Я прочитал документацию, но не уверен, что получил объяснение. Итак, мой вопрос:

Если у меня есть 10 документов в коллекции «местоположений», означает ли это, что каждый раз, когда пользователь помещает письмо и запускает функцию поиска, он читает 10 документов или читает только их в первый раз, а затем использовать «снимок», и он не считается чтением?

И еще одна вещь, которую я не понимаю: - Если я использую метод where для поиска по имени, и у меня есть 5 результатов в коллекции "location", считается ли она 5 или 10 чтений. Я имею в виду, что у меня есть 10 городов, и 5 из них начинаются с "Безумный". Он читает только 5 или 10 документов в коллекции?

1 Ответ

2 голосов
/ 03 марта 2020

При использовании следующего оператора if:

if (query.length > 2) {
    performSearch(query);
}

Это означает, что метод performSearch() будет запущен, только если пользователь введет более двух символов.

If У меня есть 10 документов в коллекции "location", означает ли это, что каждый раз, когда пользователь помещает письмо и запускает функцию поиска, он читает 10 документов

Нет, метод будет срабатывать только тогда, когда пользователь вводит три или более символов. Таким образом, вы будете читать только те документы, которые удовлетворяют вашему запросу. Согласно официальной документации, касающейся получения данных в режиме реального времени :

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

И для ответа на второй вопрос:

Если я использую метод where для поиска по имени и у меня есть 5 результатов в коллекции "location", это считается как 5 или 10 чтений. Я имею в виду, что у меня есть 10 городов, и 5 из них начинаются с «Безумный», читает ли он только 5 или 10 документов в коллекции?

Вам будет предъявлено обвинение в количестве прочитанных документов, которое равно количеству документов, возвращаемых по вашему запросу. Так что в вашем случае, если у вас есть 10 документов в вашей коллекции, но ваш запрос возвращает только 5 из них (5 из них начинаются с «Безумный»), то вам будет предъявлено обвинение только в 5 операциях чтения.

Редактировать:

Согласно вашему комментарию, если вы используете функцию реального времени, согласно официальной документации относительно цены :

Кроме того, если прослушиватель отключен более чем на 30 минут (например, если пользователь переходит в автономный режим), с вас будет взиматься плата за чтение, как если бы вы выполнили новый запрос.

Итак, как только вы получите документ, этот документ будет добавлен в кеш. Поэтому, если вы прочитаете этот документ еще раз, вы прочитаете его из кэша. Однако, если ваш слушатель отключен, вы будете снова изменены.

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