observeSingleEventOfType
.Value
和observeEventType
.ChildAdded
。当.ChildAdded
检索现有数据(不仅仅是添加)时,我需要在.ChildAdded
完成后触发.Value
连续观察者。但由于.Value
的行为类似于for循环(多次遍历该块),我无法使用布尔变量对其进行排序。
var initialLoad = true
myRef.observeSingleEventOfType(.Value, withBlock: { snapshot in
// Retrieve Stuff from Database
// when completed
initialLoad = false
print("A")
}
myRef.observeEventType(.ChildAdded, withBlock: { snapshot in
if initialLoad == false {
// Observe only for newly added events
print("B")
}
}
打印日志看起来像这样(B得到干预)
"A"
"A"
"B"
"A"
我尝试过这种方法,但有一秒.ChildAdded
部分在initialLoad上运行。我想这是因为它的行为类似于for循环。我希望在初始加载时运行.Value
,而.ChildAdded
只是为了观察更改。
实现这一目标的最佳途径是什么?