Я использую Firebase, чтобы позволить пользователям сохранять определенную информацию об их авторизованных профилях.Всего у меня есть 4 разные коллекции, и все они содержат документы, соответствующие UID.
Когда мой сайт загружается, мне нужно немедленно получить доступ к данным из всех 4 коллекций для UID данного пользователя.Это означает, что сейчас, когда пользователь перезагружает мое приложение, он генерирует 4 запроса.Однако пользователи моего приложения, как правило, не очень часто меняют свою хранимую информацию (возможно, раз в 20 или около того раз, когда они загружают приложение), поэтому на самом деле нет необходимости повторять запрос этих данных каждый раз.
Я уже предпринял шаги для кэширования всех этих данных в локальном хранилище браузера пользователя, но вот где моя проблема: как я могу узнать, когда кэшированные данные устарели?
ВВ прошлом я создавал похожие механизмы кеширования, которые в конечном итоге полагаются на флаг «версия».И источник данных, и локальное хранилище пользователя содержат «версию».Когда оба совпадают, приложение знает, что оно имеет самые последние данные, однако, когда они не синхронизированы, приложение знает, что ему нужно повторно запросить данные.Флаг 'version' в источнике данных в конечном итоге изменяется каждый раз, когда происходит обновление, которое влияет на пользователя, о котором идет речь.
В идеале я хочу закончить этим потоком:
- Пользовательзагружает приложение.
- Приложение сравнивает локальную версию данных с версией, содержащейся в Firebase.
- Если версии совпадают, используйте локальные данные.
- Если версии не совпадают, запросите все данные.
Возможно ли это сделатькак то с Firebase?Прямо сейчас я не вижу возможности этого без необходимости генерировать дополнительный набор вызовов каждый раз, когда данные пользователя изменяются для изменения флага этой версии.
Если это невозможно, как я могу узнать, когда пользовательданные требуют обновления без использования нескольких запросов?
Если это поможет, я использую Firestore, и это веб-приложение без серверной части.