ios - 使用 Firebase 时,我应该什么时候在主线程上进行用户界面工作?

标签 ios firebase firebase-realtime-database

我听说在从 Firebase 读取数据时,我应该始终在主线程上进行用户界面工作。
我试着做 self.tableView.reloadData在 Firebase 中的后台线程 observe(.value)功能和应用程序没有崩溃或卡住。

databaseReference.observe(.value) { [weak self] snapshot in
        guard let self = self else { return }
        self.tableView.reloadData()
}
我试图在 getData 里面做同样的工作函数而不是 observe(.value)功能和应用程序崩溃。
databaseReference.getData { [weak self] error, snapshot in
        guard let self = self else { return }
        self.tableView.reloadData()
}
那么为什么应用程序在内部崩溃 getData函数并且它没有在内部崩溃 observe(.value)功能?

最佳答案

火力士在这里
虽然 Firebase SDK 在后台线程上执行其网络和其他 I/O,但它实际上在主线程上调用您的回调。
但似乎getData在这里不这样做,这是一个错误。所以感谢您发现并报告这一点。 🙏
我提交了错误 #8245在 Github 存储库上,因此请检查那里的进度。

关于ios - 使用 Firebase 时,我应该什么时候在主线程上进行用户界面工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67941742/

相关文章:

javascript - 使用 Firebase 存储上传 base64 图像

android - 带 BiChannelGoogleApi : [FirebaseAuth: ] getGoogleApiForMethod() returned Gms

ios - 如何在 JSQMessagesViewController 的帮助下在 swift 4 中实现一种机制,让用户使用 firebase 阻止滥用用户

android - 需要有关设置网络系统以更新同一网络上的多个设备的指导

ios - 使 UITableViewCell 操作与内容重叠

ios - 如何打开事件并在选择 Collection View 单元格时传递变量?

ios - 具有两个以上位置的 Firebase 中的多路径更新问题

java - query.addListenerForSingleValueEvent 不会运行...?

android - 如何在 firebase 的一个请求中删除多个节点?

javascript - iOS UiWebView/页面可见性 API : "pageshow" event not firing