我正在写一个iOS应用程序。我希望逐个获得节点的每个孩子,并在我拥有所有现有孩子后停止听。请observeSingleEvent(of: .childAdded)
做我想做的事吗?我知道我可以调用.value
并遍历字典,只是想知道是否有更清洁的方式。
答案 0 :(得分:2)
如果你这样做:
observeSingleEvent(of: .childAdded)
您最多只能获得一次.childAdded
次活动。如果那就是你想要的,那么你确实可以用它。
请记住:
.childAdded
仅在有子节点时触发,而.value
在没有子节点时也会触发。.childAdded
事件将在以后添加子项时触发,而.value
将立即触发 答案 1 :(得分:1)
否,observeSingleEvent(of: .childAdded)
将在该节点上设置触发器,如果为该特定引用添加了任何子节点。您的代码委托将被调用。
您需要使用以下代码来获取该节点的所有子节点。
_commentsRef.observe(.value) { snapshot in
for child in snapshot.children {
...
}
}