【问题标题】:How to exclude some of the Firebase database nodes from being persisted?如何从持久化中排除某些 Firebase 数据库节点?
【发布时间】:2017-04-18 03:41:28
【问题描述】:
FirebaseDatabase.getInstance().setPersistenceEnabled(true);

此语句在应用重新启动时将所有读取和写入操作保留在 firebase 数据库中。但是我需要什么来排除我的一些数据库节点被持久化?

我已经将数据存储在本地数据库中,并且仅为数据库写入操作启用了持久性。我的一些查询正在下载大量数据以向用户显示一些报告,我希望 Firebase 将该查询排除在缓存之外。

有没有首选的方法来做到这一点?或者我们怎样才能只持久化数据库写操作?

【问题讨论】:

    标签: android firebase firebase-realtime-database


    【解决方案1】:

    这个语句持久化firebase中的所有读写操作 跨应用程序的数据库重新启动。

    它不会保留所有这些东西。它将保存最多 10MB 最近读取的数据。该限制不适用于您已写入但尚未同步的数据。

    如果启用此功能,您将无法从持久性中排除任何路径。

    如果您想从数据库中读取某些内容而不让其访问持久性缓存,请考虑通过 REST API 而不是通过 SDK 读取它。

    【讨论】:

    • 有没有办法绕过缓存或者使用SDK了解数据是来自缓存还是来自服务器?
    • @Rasto 不适用于实时数据库。这是 Cloud Firestore 的一个功能。
    • 如果能将它用于实时数据库就好了……添加起来可能不会太难。在此之前,我必须使用 REST :(
    • 只是为了澄清一下:我不在乎某些东西是否存储在缓存中。我关心的是,当我获取数据时,我确信它们来自服务器而不是缓存,并且我必须同时具有离线持久性(为了其他一些数据)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多