我将一些数据存储在我的 Firebase 数据库中名为“通知”的节点下。当我将事件观察器添加到“通知”并将事件类型设置为“.childAdded”时,每次将子项添加到“通知”节点以及每次从“通知”节点删除子项时都会调用完成处理程序.首先,我不明白为什么会发生这种情况,因为没有添加任何内容,只是删除了。有什么办法可以避免这种情况吗?
如果每次删除子项时我都无法避免执行 .childAdded block ,是否可以通过某种方式检测它实际上是一个子项删除事件而不是一个子项添加事件?如果事件被子删除,我想从函数中提前返回。以下是我的代码供引用:
//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 查询就像是数据 View 。在您的情况下,该 View 将始终显示基础集合中的最后一项。
说这是你的收藏:
item1
item2
使用此数据,您的查询最初将为 item2
触发 child_added。
现在假设你添加了一个项目:
item1
item2
item3
由于 item3
现在是集合中的最后一项,查询将为 item3
触发 child_added。
现在你删除 item3
:
item1
item2
由于 item2
现在再次成为查询中的最后一项,它将为 item2
触发 child_added。
关于ios - 在 Firebase iOS SDK 中,每次删除子项时都会触发 .childAdded。我怎样才能阻止这个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39736714/