当我尝试在 fIREBASE 中设置持久性时遇到问题,有人可以解释一下如何去做吗?
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_meal_details);
if (mDatabase == null) {
mDatabase = FirebaseDatabase.getInstance().getReference();
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
// ...
}
// FirebaseDatabase.getInstance().setPersistenceEnabled(true);
mDatabase = FirebaseDatabase.getInstance().getReference();
最佳答案
根据 Firebase 文档,setPersistenceEnabled 只能调用一次(在创建任何其他 FirebaseDatabase 实例之前)
所以对我来说这个问题的解决方案如下
- 你需要创建一个类,它扩展android.app.Application和setPersistenceEnabled(true)。
举例
class MyFirebaseApp extends android.app.Application
@Override
public void onCreate() {
super.onCreate();
/* Enable disk persistence */
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
}
- 在 Manifest 中,将 MyFirebaseApp 类链接到应用程序标记
举例
在您的应用程序标签中添加以下内容
android:name="com.example.MyFirebaseApp"
这应该可以正常工作。
也不要在任何其他 Activity 中使用 setPersistenceEnabled。
关于android - com.google.firebase.database.DatabaseException : Calls to setPersistenceEnabled() must be made before any other usage of FirebaseDatabase instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37753991/