带有LimitToLast的ChildAdded触发ChildRemoved

时间:2018-03-29 12:33:10

标签: ios firebase

如果您使用" toLast"来限制查询,请参阅Firebase文档。然后,当添加子项时,如果已经超过该值(在我的情况下为f.e.50),则还会触发子项被删除,因为第一个子项已从作用域中删除。

以下监听器是我在代码中的监听器:

firebaseReference.queryOrderedByKey().queryLimited(toLast: 50).observe(.childAdded...
firebaseReference.queryOrderedByKey().queryLimited(toLast: 50).observe(.childRemoved...

我想知道当一个孩子真的被删除或者孩子刚从范围中删除时,是否有某种方法可以区分。

非常感谢, 任何进一步的信息都不会犹豫不决。

1 个答案:

答案 0 :(得分:0)

Firebase不会发送有关您收到.childRemoved事件的原因的信息,因此根据该信息无法知道。

我唯一能想到的就是为每个孩子添加一个.value监听器,然后在孩子被删除时用null触发。

您希望在收到.value处理程序后删除.childRemoved侦听器,以便没有为您见过的每个孩子悬挂听众,因此这可能会变得更有价值而不是值得