检测使用Firebase完成数据重播

时间:2016-06-11 13:00:49

标签: ios swift firebase firebase-realtime-database

observeSingleEventOfType .ValueobserveEventType .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只是为了观察更改。

实现这一目标的最佳途径是什么?

0 个答案:

没有答案