【问题标题】:Firebase Cache vs Implementing a Custom Room CacheFirebase 缓存与实现自定义房间缓存
【发布时间】:2019-07-16 14:16:36
【问题描述】:

我们正在使用 firebase 实时数据库,我正在考虑在本地实现缓存以减少重复调用。

所以我想出了一个涉及房间持久性库的算法。

stream only the latest data from firebase
   store in room cache
when requested fetch all data from room cache and return

但后来我开始考虑 firebase 提供的缓存,并开始意识到我可能完全可以避免使用房间库。

stream only the latest data from firebase
when requested call fetch data using a singleValueListener

由于我们使用单值侦听器,因此只会从 firebase 获取缓存的数据。

使用第二种方法的缺点是什么?我知道 firebase 缓存限制为 10MB,所以可能是一个

【问题讨论】:

    标签: android firebase-realtime-database android-room


    【解决方案1】:

    您需要在这里了解的一件大事是,由 SDK 管理的缓存几乎完全不受您的控制。你可以set the size of the cache,你可以通过尝试找到它使用的数据库文件来清除它,否则你无法配置它。

    如果您自己编写代码,则必须对代码的工作方式做出每一个决定,而且要使所有事情都正确,将需要大量代码。

    【讨论】:

      【解决方案2】:

      与 Cloud Firestore 中默认启用 offline persistence 不同,在 Firebase 实时数据库中启用 offline capabilities 您需要使用以下代码行:

      FirebaseDatabase.getInstance().setPersistenceEnabled(true);
      

      这意味着默认情况下您将拥有数据库的本地副本。所以没有必要再添加一个。所以这样你只会得到新的数据,否则你得到的一切都是从缓存中获得的。

      【讨论】:

        猜你喜欢
        • 2021-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-16
        • 1970-01-01
        • 2012-08-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多