Кэширование данных Firebase для нескольких коллекций - как я могу узнать, когда что-то изменилось? - PullRequest
0 голосов
/ 25 июня 2018

Я использую Firebase, чтобы позволить пользователям сохранять определенную информацию об их авторизованных профилях.Всего у меня есть 4 разные коллекции, и все они содержат документы, соответствующие UID.

Когда мой сайт загружается, мне нужно немедленно получить доступ к данным из всех 4 коллекций для UID данного пользователя.Это означает, что сейчас, когда пользователь перезагружает мое приложение, он генерирует 4 запроса.Однако пользователи моего приложения, как правило, не очень часто меняют свою хранимую информацию (возможно, раз в 20 или около того раз, когда они загружают приложение), поэтому на самом деле нет необходимости повторять запрос этих данных каждый раз.

Я уже предпринял шаги для кэширования всех этих данных в локальном хранилище браузера пользователя, но вот где моя проблема: как я могу узнать, когда кэшированные данные устарели?

ВВ прошлом я создавал похожие механизмы кеширования, которые в конечном итоге полагаются на флаг «версия».И источник данных, и локальное хранилище пользователя содержат «версию».Когда оба совпадают, приложение знает, что оно имеет самые последние данные, однако, когда они не синхронизированы, приложение знает, что ему нужно повторно запросить данные.Флаг 'version' в источнике данных в конечном итоге изменяется каждый раз, когда происходит обновление, которое влияет на пользователя, о котором идет речь.

В идеале я хочу закончить этим потоком:

  1. Пользовательзагружает приложение.
  2. Приложение сравнивает локальную версию данных с версией, содержащейся в Firebase.
    1. Если версии совпадают, используйте локальные данные.
    2. Если версии не совпадают, запросите все данные.

Возможно ли это сделатькак то с Firebase?Прямо сейчас я не вижу возможности этого без необходимости генерировать дополнительный набор вызовов каждый раз, когда данные пользователя изменяются для изменения флага этой версии.

Если это невозможно, как я могу узнать, когда пользовательданные требуют обновления без использования нескольких запросов?

Если это поможет, я использую Firestore, и это веб-приложение без серверной части.

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