为什么这个ChildEventListener不从Firebase节点读取数据?
我有一个查询与图像链接中显示的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工作得很好,但我有一些其他问题与该监听器,所以我不得不使用这个监听器。 请建议我在这里做错了什么?
为每个不是该位置(或查询)的孩子调用onChildAdded
方法。 如果没有匹配的子节点,则不会调用onChildAdded
。
如果你想检测没有子节点的情况,你(也)需要使用ValueEventListener
。
另请参阅:
- Firebase onChildAdded在没有数据时不会调用 (这个问题实际上是重复的)
- 我可以确定查询是否找不到具有指定范围内的值的任何子项?
- 如果firebase网址不存在,我们会尝试添加一个侦听器,会发生什么情况?
- Firebase queryOrderedbyChild不返回空值
- 加载图像从毕加索的Firebase存储到Infowindow的ImageView,毕加索只显示占位符
- 如何使用Kotlin从Firebase数据库检索数据?
- Firebase Perf不会运行测试应用程序:transformClassesWithFirebasePerformancePluginForDebugAndroidTest
- 转换字节码时出错 – DexException – Firebase身份验证
- 有没有办法将后端(Kotlin)服务器应用程序部署到Firebase?
- 使用Kotlin和Firebase通过onAuthStateChanged回调触发sendEmailVerification
- 如何在Firebase中创建多个孩子
- 如何从Firebase中的表中同步获取所有行?
- 如何获取在Firestore数据库中的Android文档ID或名称传递到另一个活动?