【发布时间】:2016-10-19 23:47:09
【问题描述】:
在过去 2 周里,我一直在彻底使用和测试我的 Android 应用。
我在我的应用中详尽地使用 Firebase 实时数据库,最重要的是,我的应用需要无缝离线工作。
我有一个启动屏幕,我在启动和继续时同步特定用户节点的所有数据。
我肯定使用keepSynced(true); 和setPersistenceEnabled(true);。
注意到一个严重的问题,这导致了很多问题。
场景 1
我是第一次使用互联网连接运行该应用,该应用运行良好。
场景 2
我第一次在没有互联网连接的情况下运行该应用程序,没有任何效果。没有回调被触发。
场景 3
我在有/没有互联网连接的情况下连续运行该应用程序,它工作正常。
场景 4
但是,当我在 没有互联网连接 1 或 2 天后运行该应用程序时,没有任何效果。不会触发回调。
我似乎磁盘持久性被自动清除,这就是为什么数据无法离线使用并且没有触发回调的原因。
那么,如何控制何时清除磁盘持久性?有没有办法确保持久性永远不会被清除?有没有办法配置磁盘持久化的大小?
编辑
这就是我在应用程序类的onCreate() 中所做的。
private void initializeFirebaseDatabase() {
if (!FirebaseApp.getApps(this).isEmpty()) {
FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();
firebaseDatabase.setPersistenceEnabled(true);
}
}
【问题讨论】:
-
嗨 Artitra,你能解决你的问题吗?我在“com.google.firebase:firebase-database:9.2.0”中看到了类似的问题。由于很难重现这些问题,我不确定更新到最新版本是否可以解决它...
-
此后我无法重现该问题。
标签: android firebase firebase-realtime-database