jjzjj

android - com.google.firebase.database.DatabaseException : Calls to setPersistenceEnabled() must be made before any other usage of FirebaseDatabase instance

coder 2023-06-06 原文

当我尝试在 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 实例之前)

所以对我来说这个问题的解决方案如下

  1. 你需要创建一个,它扩展android.app.ApplicationsetPersistenceEnabled(true)

举例

class MyFirebaseApp extends android.app.Application 

@Override
public void onCreate() {
    super.onCreate();
    /* Enable disk persistence  */
    FirebaseDatabase.getInstance().setPersistenceEnabled(true);
}
  1. 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/

有关android - com.google.firebase.database.DatabaseException : Calls to setPersistenceEnabled() must be made before any other usage of FirebaseDatabase instance的更多相关文章

随机推荐