【问题标题】:Firebase asynchronous function, what's in the background queue and what's notFirebase 异步函数,后台队列中有什么,没有什么
【发布时间】:2017-01-03 19:50:49
【问题描述】:

假设我有这个

// a bunch of code...  
FIRDatabase.database.reference.child("somechild").observeSingleEventOfType(.Value, withBlock{(snapshot) in   

//some code inside of the completion handler})

请不要过多阅读代码 sn-p 要求更多代码,我只需要一个简短的答案。在它说“一堆代码”的地方,假设它实际上是 MAIN 队列上的一些代码。现在,当我写下observeSingleEvent Firebase 完成处理程序时,我对它的分析是这样的。

  1. observeSingleEvent 获取后台队列上的快照,以免阻塞主队列上的 UI。

  2. 获取快照后,“in”之后的代码块现在返回到 MAIN 队列,因此可以将任何与 UI 相关的代码放入其中。

我的整个应用程序都是基于这个推理,所以如果我不正确,请告诉我实际发生了什么。

【问题讨论】:

  • 这确实是 Firebase 数据库客户端的工作方式:所有网络和磁盘 I/O 都发生在关闭主线程,然后调用您的回调/块开启 主线程。
  • 非常感谢您的确认!可以安全地假设 facebook 图形请求以相同的方式工作吗?

标签: ios swift firebase firebase-realtime-database


【解决方案1】:

Firebase 数据库客户端确实是这样工作的:所有网络和磁盘 I/O关闭主线程,然后您的回调/块被调用 主线程.

【讨论】:

猜你喜欢
  • 2021-01-15
  • 2010-09-11
  • 1970-01-01
  • 2018-05-30
  • 1970-01-01
  • 2021-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多