Firebase ios sdk 异步和线程

Firebase ios sdk async and threads

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

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

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

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

Firebase 并没有完全消除对线程的担忧。因为 Firebase 回调总是在主线程上 return,所以从后台线程调用 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
  }
 }
}