我将一些数据存储在 Firebase 数据库中名为“通知”的节点下。当我将事件观察器添加到“通知”并将事件类型设置为“.childAdded”时,每次将子级添加到“通知”节点以及每次从“通知”节点删除子级时,都会调用完成处理程序。首先,我不明白为什么会发生这种情况,因为没有添加任何内容,只是删除了。有什么办法可以避免这种情况吗?
如果我无法避免每次删除子项时执行 .childAdded 块,是否有某种方法可以检测到它实际上是子项删除事件而不是子项添加事件?如果事件被子删除,我想从函数中提前返回。下面是我的代码供参考:
//Event observer for notifications
notificationsReference.queryLimited(toLast: 1).observe(.childAdded, with: {
(snapshot) in
//Do some stuff here only on .childAdded
//If the event was child deleted, do nothing
})
Firebase 查询就像数据的视图。在您的情况下,该视图将始终显示基础集合中的最后一项。
假设这是您的收藏:
item1
item2
有了这些数据,您的查询将首先触发 child_addeditem2
.
现在假设您添加一个项目:
item1
item2
item3
Since item3
现在是集合中的最后一项,查询将触发 child_addeditem3
.
现在你删除item3
:
item1
item2
Since item2
现在再次是查询中的最后一项,它将触发 child_addeditem2
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)