Firebase异步功能,后台队列中的内容以及不是什么

时间:2016-08-27 06:27:18

标签: ios swift firebase firebase-realtime-database

让我说我有这个

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

//some code inside of the completion handler})

请不要过多地阅读代码片段,要求提供更多代码,我只需要简短的回答。在它所说的地方,"一堆代码",假设它实际上是MAIN队列中的一些代码。现在,当我写下observeSingleEvent Firebase完成处理程序时,我对它的分析是这样的。

  1. observeSingleEvent在后台队列上获取快照,以便不阻止主队列上的UI。

  2. 获取快照后,""之后的代码块现在回到MAIN队列,因此可以将任何与UI相关的代码放在那里。

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

1 个答案:

答案 0 :(得分:9)

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