Firebase ios sdk异步和线程

时间:2015-11-18 18:29:37

标签: ios firebase

是否有人知道使用Firebase iOS SDK远程调用Firebase是使用主线程还是后台线程?

我在文档中找不到任何内容。

2 个答案:

答案 0 :(得分:3)

Firebase并不能完全消除对线程担心的担忧。由于Firebase回调始终在主线程上返回,因此从后台线程调用Firebase observe / observerSingleEvent时需要特别小心。

考虑用例:

DispatchQueue.global(qos: DispatchQoS.QoSClass.userInitiated).async {[weak weakSelf = self] in
 // Do something computationally intensive

 ref.child(somePath).observeSingleEvent(of: .value, with: { (snapshot) in
  DispatchQueue.global(qos: DispatchQoS.QoSClass.userInitiated).async {[weak weakSelf = self] in {
   // Do some computationally intensive non-critical activity based on data retrieved from Firebase
  }
 }
}

答案 1 :(得分:2)

Firebase使用它自己的后台线程。但正如Jay在评论中提到的那样,Firebase消除了担心线程的需要。

所以基本上没有必要在你自己的后台线程中运行Firebase。

相关问题