【问题标题】:Android Firebase Persistence SetAndroid Firebase 持久化集
【发布时间】:2017-06-16 12:26:37
【问题描述】:

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

【问题讨论】:

    标签: android database firebase local-storage persistence


    【解决方案1】:

    您需要覆盖Application 类,将其添加到清单然后调用 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>
    

    【讨论】:

    • 它在清单应用程序标签中说“不可分配给android.app.Application”?
    • 我猜你可以这样做,或者在应用启动时运行的服务中插入相同的代码。
    【解决方案2】:

    将它与 viewmodel 类一起保存的最佳位置! 在重新创建片段或活动后,它永远不会破坏您的查询

    class DashboardViewModel : ViewModel() {
        private lateinit var database: DatabaseReference
        private var postdata = MutableLiveData<List<Post>>()
    
       init {
           FirebaseDatabase.getInstance().setPersistenceEnabled(true);
       }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-16
      • 1970-01-01
      • 1970-01-01
      • 2021-10-27
      • 2019-05-22
      • 2012-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多