Android Firebase 持久性集

Android Firebase Persistence Set

我目前正在开发一个 android 项目,但遇到了一个小问题。我将 firebase 用于数据库,并将数据离线保存到本地存储,但是当我第二次设置 database.setPersistenceEnabled(true); 时,我的应用程序崩溃了。我怎样才能防止这种情况发生? 我在 LoginActivity 中只设置了一次并且我不使用它但是我的应用程序在后台并重新打开应用程序我的应用程序由于持久性而崩溃。 还有一个小问题,在将任何数据保存到 firebase 后,我的 activity 重新打开。我也不明白。谁能帮帮我?

您需要覆盖 Application class,将其添加到清单中,然后调用 database.setPersistenceEnabled(true); 那里。 示例:

public class MyApplication extends Application {

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

}

然后在你的 AndroidManifest.xml 中:

<application
        android:name=".MyApplication"  <!--Relative path of MyApplication.java-->
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        tools:replace="android:supportsRtl"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
...
</application>

最好把它跟viewmodel放在一起class! 在重新创建片段或 activity

后,它永远不会破坏您的查询
class DashboardViewModel : ViewModel() {
    private lateinit var database: DatabaseReference
    private var postdata = MutableLiveData<List<Post>>()

   init {
       FirebaseDatabase.getInstance().setPersistenceEnabled(true);
   }

}