Веб-приложение: Firestore cache - только чтение измененных документов - PullRequest
0 голосов
/ 11 февраля 2019

Когда дело доходит до кэширования Firestore с использованием официального веб-SDK, оптимизирует ли оно чтение, поэтому «отправляет» запрос на чтение на сервер, только если документ изменился после последнего чтения?(таким образом, он не генерирует 1 дополнительное чтение документа за попытку)

Для уточнения рассмотрим следующий сценарий:

  1. пользователь открывает страницу своего профиля в веб-приложении
  2. Firestore отправляет серверу запрос на получение документа профиля (1 считан по цене)
  3. пользователь уходит со страницы и через некоторое время возвращается в профиль
  4. веб-приложению снова необходим доступ к документу профиля

На шаге 4. Запустит ли Firestore документ с сервера по умолчанию, даже если он не был изменен?(это означает, что каждый раз, когда пользователь переходит на страницу профиля, он будет считаться как 1 дополнительное чтение по цене)

Если да, можно ли настроить Firestore так, чтобы он использовал только кэшированный объект и обновлял его только после изменения объектана сервере?Как это сделать?

1 Ответ

0 голосов
/ 11 февраля 2019

По умолчанию Firestore SDK отключает локальное сохранение кэшированных данных для веб-клиентов (но по умолчанию включено для Android и iOS).Если вы хотите включить постоянство, следуйте инструкциям в документации

firebase.firestore().enablePersistence()
  .catch(function(err) {
      if (err.code == 'failed-precondition') {
          // Multiple tabs open, persistence can only be enabled
          // in one tab at a a time.
          // ...
      } else if (err.code == 'unimplemented') {
          // The current browser does not support all of the
          // features required to enable persistence
          // ...
      }
  });
// Subsequent queries will use persistence, if it was enabled successfully

С вас не будет взиматься плата за чтение документа, если документ обновлен в локальном кэше.

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