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
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1830 次 |
| 最近记录: |