将Firebase Persistence Enabled设置为true后,不检索新数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将Firebase Persistence Enabled设置为true后,不检索新数据?相关的知识,希望对你有一定的参考价值。

制作FirebaseDatabase.getInstance().setPersistenceEnabled(true);后查询获取数据

Query  query = FirebaseDatabase.getInstance()
                      .getReference()
                      .child("notifications")
                      .child("entities")
                      .child(FirebaseAuth.getInstance().getCurrentUser().getUid().toString())
                      .orderByChild("seen")
                      .equalTo(0); 

来自data tree

它提供了缓存中的旧数据,而不是Firebase数据库中的新更改数据。但是当我将setPersistenceEnabled(true)更改为setPersistenceEnabled(false)时,一切都很好我还希望将firebase数据保存在缓存中并更改当对Firebase数据库进行更改时。请帮助维护Firebase数据持久性以及实时更改。

答案

如果您正在使用:

setPersistenceEnabled(true);

这意味着即使您处于离线状态,您也可以查询数据库。这种情况正在发生,因为Firebase会创建数据库的本地副本,该副本将在您的应用/设备重新启动后保留。在您离线时进行的每项更改都将在您重新联机后在Firebase服务器上进行更新。更清楚的是,使用Firebase数据库并使用setPersistenceEnabled(true)的每个客户端都维护着自己的数据库内部(本地)版本。更新数据时,首先将其写入此数据库的本地版本。

因此,通过启用持久性,Firebase实时数据库客户端在联机时可以同步的任何数据都会保留到磁盘并且可以脱机使用,即使用户或操作系统重新启动应用程序也是如此。这意味着您的应用程序将使用存储在缓存中的本地数据在线工作。

但是,当您没有连接到服务器时,没有办法停止从缓存中检索数据,因为当您连接到服务器时,您无法强制从缓存中检索数据,不幸的是这种行为不能改变了。

以上是关于将Firebase Persistence Enabled设置为true后,不检索新数据?的主要内容,如果未能解决你的问题,请参考以下文章

关于 Analytics 屏幕报告的 Firebase Analytics 错误

Firebase 身份验证不持久

使用maven将persistence.xml放在库jar中的哪里?

考虑环境流量的水资源利用网络模型评价

使用 javax.persistence.EntityManager 将实体添加到我的 SQL 数据库时出错

任务“:react-native-android-location-enabler:generateDebugRFile”执行失败