启用离线功能只会在Firebase中存储对象的一部分

时间:2018-06-28 09:33:33

标签: android firebase firebase-realtime-database offlineapps

我使用Firebase实时数据库和其他一些Firebase服务开发了一个android应用,在该数据库中,我为用户提供了一个参考,我在其中存储有关用户的所需信息,如下所示:

enter image description here

我确保在存储到数据库时,用户及其所有字段都已初始化并且不是null或未定义。

在尝试启用this文档之后的脱机功能之前,所有方法都工作正常,现在我按照主要活动中的文档中的说明添加了这一行:

FirebaseDatabase.getInstance().setPersistenceEnabled(true);

并且该应用在大多数情况下都可以在离线状态下正常运行,但是有时,该应用在获取用户列表时崩溃,并出现NullPointerException异常,我检查了数据库,发现一个只有两个字段的用户; instanceId和Id,其余字段不存在。 我不知道为什么会这样,但是可以肯定的是,支持脱机功能是问题所在。

我非常感谢我一直在寻找解决方案的任何帮助。 谢谢!

1 个答案:

答案 0 :(得分:4)

我希望这对您有用。

FirebaseDatabase.getInstance().setPersistenceEnabled(true);

在应用程序类onCreate()方法中的行上方。如果未创建,则创建为

import android.app.Application;

public class App extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        FirebaseDatabase.getInstance().setPersistenceEnabled(true);
    }
}

像这样在Manifest中调用此类,

 <application
        android:name=".App"
        ......
             />