ios - 当 Firebase 函数以 Swift 结束时

标签 ios swift xcode firebase firebase-realtime-database

我在我的应用程序中使用 Firebase,它会查询大量用户并获取所需的特定数据,但是当它开始查询时 - 函数的其余部分也会继续运行,而不仅仅是查询,这样我就可以不明白什么时候结束。

例如在此代码中:

ref.observeEventType(.ChildAdded, withBlock: { snapshot in

            let user = snapshot.value!.objectForKey("User")
            let name = (user!["Name"])! as! String

            print("name")

            })
print("done")

假设 Firebase 数据库中有 3 个用户 - 打印的代码为:

done
nameuser1
nameuser2
nameuser3

(或者完成将位于名称用户之间,取决于您的互联网连接 - 但它不会是最后一个)

最佳答案

Firebase 回调 block 是异步的,而打印行是同步的。这意味着只要 block 从底层 API 调用接收到返回的数据, block 就会运行,而 block 外部的“打印”(和其他)行将继续按顺序运行。

这就是为什么在运行回调 block 之前运行打印行。

关于ios - 当 Firebase 函数以 Swift 结束时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39201596/

相关文章:

ios - 如何获取所有已计划或正在执行的OperationQueues并取消它

iphone - 如何在 iPhone 上使用 Swift 数据类型 Float80

swift - 如何删除一些被 Xcode 复制的 Swift 库?

ios - 如何从外部更新 SwiftUI View 状态(例如 UIViewController)

ios - ReSwift - 在动画中间接收 Action

ios - 如何通过循环swift 5为scrollview内的imageView设置trailingAnchor.constraint

ios - 如何在 Swift UIView 类中将 SubLayer 添加到图层

ios 如何在从 UITableView 中的 rss 提要获取数据时显示事件指示器?

ios - 如何在 iOS 6 中使用特定地址启动 iOS map 应用程序?

ios - CoreData 的 Double 返回非常小的数字