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

标签 android firebase firebase-realtime-database

当我尝试在 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 - 使用 Android.mk 加载共享库

python - 如何使用 python 从 firebase 获取当前登录帐户的 UID

android - 如何使用 firebase-server 在 android 下模拟 firebase 云消息传递

android - Firebase RecyclerView - 添加新项目时滚动动画

android - 以 3.0+ 为目标时,在可运行对象中获取 NetworkOnMainThreadException

java - Math.round() 无法正常工作

java - 如何在 Android 设备中从 Firestore 获取服务器时间戳?

forms - polymer 1.0 : Two-way data binding: <iron-form> to/from Firebase

android - FirebaseInstanceId token 检索失败 SERVICE_NOT_AVAILABLE

swift - 从当前用户 firebase swift 获取文档