我试图了解这两者是如何相关的。来自文档:
onChildAdded事件为每个现有子项触发一次,然后每次将新子项添加到指定路径时再次触发。将向侦听器传递包含新子项数据的快照。
那:
删除直接子项时会触发onChildRemoved事件。它通常与onChildAdded和onChildChanged事件一起使用。传递给事件回调的快照包含已删除子项的数据。
所以我非常期待这两个事件是根据他们的角色分别触发的:也就是说,onChildAdded
将在我添加新数据时被触发,而onChildRemoved
是在我删除{{1}时来自child
。
但是,当我添加数据时,这就是我记录的内容:
nodes

在
14:47:39.649 31305-31305/com.myapp D/addData_: onChildRemoved called
14:47:39.649 31305-31305/com.myapp D/addData_: onChildAdded called
之前首先调用 onChildRemoved
!!更糟糕的是数据从我的onChildAdded
中消失了。有人帮我理解我做错了什么。
我的火力队参考:
listview

答案 0 :(得分:-1)
我评论了他的专栏并且有效!
//limit to the last data
final Query lastSale = ref.limitToLast(1);