Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android FireBase onChildeded()触发器onChildRemoved()_Android_Firebase Realtime Database - Fatal编程技术网

Android FireBase onChildeded()触发器onChildRemoved()

Android FireBase onChildeded()触发器onChildRemoved(),android,firebase-realtime-database,Android,Firebase Realtime Database,我试图理解这两者之间的关系。从文档中: onChildAdded事件为每个现有子级触发一次,然后在每次将新子级添加到指定路径时再次触发。将向侦听器传递一个包含新子级数据的快照 而且: 移除直接子级时会触发onChildRemoved事件。它通常与onchildaded和onChildChanged事件一起使用。传递给事件回调的快照包含已删除子级的数据 因此,从技术上讲,我希望这两个事件根据它们的角色分别触发:即,当我添加新数据时,onchildeded将被触发,而onChildRemoved是当

我试图理解这两者之间的关系。从文档中:

onChildAdded事件为每个现有子级触发一次,然后在每次将新子级添加到指定路径时再次触发。将向侦听器传递一个包含新子级数据的快照

而且:

移除直接子级时会触发onChildRemoved事件。它通常与onchildaded和onChildChanged事件一起使用。传递给事件回调的快照包含已删除子级的数据

因此,从技术上讲,我希望这两个事件根据它们的角色分别触发:即,当我添加新数据时,
onchildeded
将被触发,而
onChildRemoved
是当我从
节点
删除
子节点时被触发

但是,当我添加数据时,我会记录以下内容:

14:47:39.649 31305-31305/com.myapp D/addData\ux:onChildRemoved调用

14:47:39.649 31305-31305/com.myapp D/addData\uu:onchildaded打电话给
,我把他的台词注释掉了,它成功了

//限制到最后一个数据

最终查询lastSale=ref.limitToLast(1)limitToLast无法解决您描述的上述问题,因此从技术上讲,我希望这两个事件根据它们的角色分别触发:即,当我添加新数据时将触发OnChildEded,而onChildRemoved是当我从节点中删除一个子节点时触发。出于某种原因,我反复复制该反应。我仍然无法解释。但上述行动给了我预期的结果。你解决了这个问题吗?我确实有朋友:)