【问题标题】:Kotlin Fix setPersistenceEnabled(true)Kotlin 修复 setPersistenceEnabled(true)
【发布时间】:2019-05-16 17:53:04
【问题描述】:

如何在我的活动中修复以下错误?

原因:com.google.firebase.database.DatabaseException:必须在使用 FirebaseDatabase 实例之前调用 setPersistenceEnabled()。

我在我的活动中这样设置 setPersistenceEnabled():

override fun onOptionsItemSelected(item: MenuItem?): Boolean {
    when (item?.itemId) {
        R.id.ViewThat_add -> {
            val intent = Intent(this, Add::class.java)
            startActivity(intent)

        }
        R.id.ViewThat_delete -> {
            delete()
        }
        R.id.ViewThat_Download -> {
            enablePersistence()
            download()


        }


    }
    return super.onOptionsItemSelected(item)

}

private fun enablePersistence() {
    FirebaseDatabase.getInstance().setPersistenceEnabled(true)
}

在文档中它与此非常相似,我真的不知道如何修复此错误。

【问题讨论】:

    标签: android firebase firebase-realtime-database kotlin


    【解决方案1】:

    正如错误消息所说,您需要在对数据库进行任何其他调用之前启用持久性。执行此操作的常用方法是将调用放入主活动的onCreate,或Application 的子类或ContentProvider。

    【讨论】:

    • 类 ViewPlaylist : AppCompatActivity() { private fun enablePersistence() { FirebaseDatabase.getInstance().setPersistenceEnabled(true) } override fun onCreate(savedInstanceState: Bundle?) { enablePersistence() super.onCreate(savedInstanceState ) setContentView(R.layout.activity_view_playlist) setPlaylistInfo() } 我已经这样做了,但活动仍然崩溃。
    • 有趣。这意味着在启用持久性之前必须对数据库进行一些其他调用。查看有关同一错误消息的其他一些问题,例如 this、this 或 this。
    • 我解决了我认为的问题,但我可以检查一下数据是否已存储?
    • 运行应用,关闭网络,再次运行应用?
    • 啊,是的,我忘记了这样做的全部目的:D。再次感谢您!
    猜你喜欢
    • 2016-09-23
    • 2016-10-26
    • 2019-08-08
    • 1970-01-01
    • 1970-01-01
    • 2018-03-19
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    相关资源
    最近更新 更多