在过去的两周里,我一直在使用和测试我的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);
        }
}

最佳答案

检查这个链接com.google.firebase.database.DatabaseException: Calls to setPersistenceEnabled() must be made before any other usage of FirebaseDatabase instance我想这个问题与链接中的问题相似,并且已经解决了。

10-08 06:13
查看更多