Android 将Firebase数据库查询与其他任务同步
在我的活动中,我有一个if,它具有查询数据库的引用值Android 将Firebase数据库查询与其他任务同步,android,firebase,kotlin,firebase-realtime-database,Android,Firebase,Kotlin,Firebase Realtime Database,在我的活动中,我有一个if,它具有查询数据库的引用值 reference = if (valor == 1){ ConversationsAdapter.teste.child("messages") }else{ MainActivity.usersChatReference.child("messages") } 问题是,当我使用该reference变量作为引用来查询我的数据库时,我会收到一个错误消息“lat
reference = if (valor == 1){
ConversationsAdapter.teste.child("messages")
}else{
MainActivity.usersChatReference.child("messages")
}
问题是,当我使用该reference
变量作为引用来查询我的数据库时,我会收到一个错误消息“lateinit属性引用尚未初始化”。如何确保上述代码在该查询代码之前运行
reference.addChildEventListener(object : ChildEventListener{
override fun onCancelled(p0: DatabaseError) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onChildMoved(p0: DataSnapshot, p1: String?) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onChildChanged(p0: DataSnapshot, p1: String?) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onChildAdded(p0: DataSnapshot, p1: String?) {
teste()
}
override fun onChildRemoved(p0: DataSnapshot) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
})
通过快速搜索,您似乎可以(并且需要)保护您的代码,以防不使用以下命令初始化变量:
if (::reference.isInitialized) {
reference.addChildEventListener(object : ChildEventListener{
...
另见: