Невозможно ограничить или настроить частоту, с которой запускаемые слушатели получают данные - теоретически любые изменения должны отправляться в ваше приложение практически сразу, но на практике в этом процессе есть некоторая задержка ... в результате 4-10секунды, которые вы наблюдали в другом месте.Firestore, очевидно, лучше оптимизирован, так как вы не видите такой большой задержки.
Если вы беспокоитесь о бюджете или выставлении счетов, лучший совет, который я могу дать, - это просмотреть официальные Предложения по оптимизации .Они предназначены для RTDB, а не для Firestore, но они все еще полезны.
Обратите внимание, что это не считается оплачиваемым «чтением», если данные не изменяются, и если ваши данные не изменяютсяпостоянно вам не нужно беспокоиться о выставлении счетов ... Посетите страницу с ценами Firestore , которая включает в себя этот пояснительный параграф о выставлении счетов для слушателей:
Прослушивание результатов запроса
Cloud Firestore позволяет прослушивать результаты запроса и получать обновления в режиме реального времени при изменении результатов запроса.
Когда вы прослушиваете результаты запроса, с вас взимается плата за чтение каждого из них.время, когда документ в наборе результатов добавляется или обновляется.Вы также платите за чтение, когда документ удален из набора результатов, потому что документ изменился.(Напротив, при удалении документа с вас не взимается плата за чтение.)
Кроме того, если прослушиватель отключен более чем на 30 минут (например, если пользователь переходит в автономный режим), вы будетевзимать плату за чтение, как если бы вы задали новый запрос.