Представьте себе, что я выполню запрос к определенной коллекции, содержащей 100 документов.
Я покажу 20 результатов на странице, используя курсоры запросов .
Если мой пользователь начинает со страницы 1 и нажимает кнопку Next
, пока не увидит страницу 5, он прочтет все 100 документов.
ВОПРОС
Если он нажмет кнопку Previous
, возвращаясь со страницы 5 до страницы 1 снова, с меня будет взиматься плата за 180 операций чтения, или у Firestore будет какой-то период кэширования, когда он будет возвращать те же результаты без новых операций чтения?
180 = Страницы с 1 по 4 дважды и по одному разу.
Примечание: Я бы использовал метод get()
на каждой странице с соответствующим startAfter()
.
Я спрашиваю это, потому что на странице операций с ценами есть информация о результатах прослушивания запроса:
Прослушивание результатов запроса
Cloud Firestore позволяет прослушивать результаты запроса и получать обновления в реальном времени при изменении результатов запроса.
Когда вы прослушиваете результаты запроса, вы платите за чтение каждый раз, когда документ в наборе результатов добавляется или обновляется. Вы также платите за чтение, когда документ удален из набора результатов, потому что документ изменился. (Напротив, при удалении документа с вас не взимается плата за чтение.)
Кроме того, , если прослушиватель отключен более чем на 30 минут (например, если пользователь переходит в автономный режим), с вас будет взиматься плата за чтение, как если бы вы выполнили новый запрос.
Примечание: Я знаю, что в этом случае я не настраиваю слушателя, но я хочу знать, есть ли какое-либо аналоговое поведение в моем случае.