Viv*_*oti 4 android firebase firebase-realtime-database
我正在使用Firebase作为后端开发应用程序.我正在尝试实现Firebase提供的磁盘持久性,但是当我重新启动应用程序时,我的应用程序崩溃了.该文档说要Firebase.getDefaultConfig().setPersistenceEnabled(true)在任何firebase引用之前写入,我这样做但它不起作用.
这是我的代码的一部分:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Firebase.setAndroidContext(this);
firebase.getDefaultConfig().setPersistenceEnabled(true);
firebase = new Firebase(getString(R.string.firebase_url));
setContentView(R.layout.activity_main);
//remaining code
}
Run Code Online (Sandbox Code Playgroud)
日志输出:
Caused by: com.firebase.client.FirebaseException: Modifications to Config objects must occur before they are in use
at com.firebase.client.core.Context.assertUnfrozen(Context.java:124)
at com.firebase.client.Config.setPersistenceEnabled(Config.java:155)
at activity.MainActivity.onCreate(MainActivity.java:148)
at android.app.Activity.performCreate(Activity.java:5984)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2256)
Run Code Online (Sandbox Code Playgroud)
得到它了!如文档所述(https://www.firebase.com/docs/android/api/),问题是Firebase.setAndroidContext(this);
并且Firebase.getDefaultConfig().setPersistenceEnabled(true);每个应用程序仅被声明一次.
因此,上面提到的两个语句都包含在应用程序java文件的onCreate()中,而不是在活动java文件中.在创建任何firebase对象之前,还应该包含它们.这解决了问题:).
我也遇到了类似的问题,终于解决了,只要检查是否isPersistenceEnabled为假,然后只设置持久性。按照您的onCreate方法执行此操作
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
if (Firebase.getDefaultConfig().isPersistenceEnabled() == false)
Firebase.getDefaultConfig().setPersistenceEnabled(true);
Firebase.setAndroidContext(this);
Run Code Online (Sandbox Code Playgroud)
}
| 归档时间: |
|
| 查看次数: |
1320 次 |
| 最近记录: |