缓存多个集合的Firebase数据-如何知道什么发生了变化?

时间:2018-06-25 12:14:41

标签: javascript firebase caching google-cloud-firestore

我正在使用Firebase允许用户保存有关其登录配置文件的某些信息。总共我有4个不同的集合,所有集合都包含与UID匹配的文档。

网站加载完毕后,我需要立即访问给定用户UID的所有4个集合中的数据。这意味着现在,每当用户重新加载我的应用程序时,它们都会生成4个get请求。但是,我的应用程序的用户往往不经常更改其存储的信息(也许每20次左右加载一次),因此实际上不需要每次都重新请求此数据。

我已经采取措施将所有这些数据缓存在用户的浏览器本地存储中,但这是我的问题所在:我怎么知道我缓存的数据何时过时了?

过去,我创建了类似的缓存机制,这些缓存机制最终依赖于“版本”标志。数据源和用户的本地存储都包含“版本”。当两者都匹配时,应用程序知道它具有最新数据,但是当它们不同步时,应用程序知道它需要重新请求数据。每当发生影响用户的更新时,数据源上的“版本”标志都会最终更改。

理想情况下,我想结束此流程:

  1. 用户加载应用程序。
  2. 应用程序将本地数据版本与Firebase中包含的版本进行比较。
    1. 如果版本匹配,请使用本地数据。
    2. 如果版本不匹配,请请求所有数据。

是否可以用Firebase做类似的事情?现在,如果每次修改用户数据以更改此版本标志,都不必生成额外的set调用,我将无法实现。

如果这不可能,那么我怎么知道用户的数据何时需要更新而又不会用完多个请求?

如果有帮助,我正在使用Firestore,这是一个没有后端的Web应用程序。

0 个答案:

没有答案