【发布时间】:2018-03-08 22:39:14
【问题描述】:
我使用图片链接中显示的 ChildEventListener 对 firebase 节点进行了查询
现在当我运行这段代码时
mMessageRef.child(ScrollAppUtils.firebaseId).child(child.key).orderByKey().limitToLast(1).addChildEventListener(object : ChildEventListener {
override fun onCancelled(p0: DatabaseError?) {}
override fun onChildMoved(p0: DataSnapshot?, p1: String?) {}
override fun onChildChanged(p0: DataSnapshot?, p1: String?) {}
override fun onChildAdded(p0: DataSnapshot?, p1: String?) {
Logger.d("inside onChild Added")
if (p0!!.hasChildren())
{
var lastMessage = p0.getValue(MessagesTwo::class.java)
var dialog = DefaultDialog(child.key, user.metaData.profileImage, user.metaData.name, arrayListUser, lastMessage, 2)
if (!listDialog.contains(dialog)) {
listDialog.add(dialog)
Logger.d(listDialog.size)
dialogListAdapter.setItems(listDialog)
dialogListAdapter.notifyDataSetChanged()
} else {
Logger.d("inside updateItemByID : ")
Logger.json(Gson().toJson(dialog))
dialogListAdapter.updateItemById(dialog)
dialogListAdapter.notifyDataSetChanged()
}
}
}
override fun onChildRemoved(p0: DataSnapshot?) {}
})
当找不到节点时,此侦听器根本不起作用,我认为它应该可以正常工作,因为 ValueEventListener 工作得很好,但是该侦听器还有其他问题,所以我不得不使用它听众。请告诉我我在这里做错了什么?
【问题讨论】:
标签: firebase firebase-realtime-database kotlin