java - 在线和离线,如果 firebase 数据库引用没有变化,则加载缓存数据
问题描述
在我的 android 应用程序中,我使用的是 firebase 数据库。对于离线工作,使用以下代码:
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
引用中的数据将保持不变。离线时,该引用中的数据会毫无延迟地加载,但在线时相同的数据需要时间(大约 8 秒)才能加载。由于该引用中的数据没有变化,我希望立即加载这些数据(可能来自缓存)。我怎样才能做到这一点?
解决方案
我想要的是它会从缓存中加载数据,但是如果数据库引用中有任何更新,那么它才会从在线加载数据
这就是 Firebase 所做的。整个想法是您与 Firebase 服务器同步,一旦添加了新数据,您就会被包含新数据onDataChange()
的对象触发。DataSnapshot
如果您不想要此功能,您可以明确告诉 Firebase goOffline():
手动断开 Firebase 数据库客户端与服务器的连接并禁用自动重新连接。
因此,如果这是您需要的,您可以使用此功能。
推荐阅读
- r - 如何使用 scale_fill_continuous_divergingx 控制不平衡的色标,其中一端应为对数?
- python-3.x - .应用于数据框中的多个列
- javascript - fetch() 方法抛出错误,( Uncaught (in promise) TypeError: Failed to fetch) (GET url net::ERR_FAILED)
- mongodb - MongoDB docker容器“无法取消链接套接字文件”
- javascript - 为什么我的地图函数没有映射反应组件中的值?
- reactjs - 无法使用 setState 更改值
- html - 有谁知道如何在网页横幅上放置一个超链接框以特定于像素的位置,而不是“左”或“右”?
- logstash - 下面的 logstash.conf 文件格式是否正确?
- javascript - 使用不同的 Lottie 动画而不发出 http 请求
- clickhouse - Clickhouse:漏斗分析