我有一个应用程序,我向Firebase发送请求以从其数据库下载文件。
以下是代码段!
// Create a reference to the file you want to download
let islandRef = storageRef.child("images/island.jpg")
// Download in memory with a maximum allowed size of 1MB (1 * 1024 * 1024 bytes)
islandRef.dataWithMaxSize(1 * 1024 * 1024) { (data, error) -> Void in
if (error != nil) {
// Uh-oh, an error occurred!
} else {
// Data for "images/island.jpg" is returned
// ... imageView.image = UIImage(data: data!)
}
}
Firebase是否在MAIN队列以外的其他队列中发送下载操作?我有疑问的原因是因为我想更新我的imageView.image,所以它会出现在屏幕上。我知道iOS框架需要MAIN队列来更新UI,所以我想确保是否需要在主队列上更新它!
答案 0 :(得分:2)
Firebase存储在单独的后台队列上执行下载,以便不阻止UI,但在主队列上显示回调,这允许您立即执行UI工作。
如果您想更改回调所在的队列,可以使用FIRStorage.setCallbackQueue()
方法(docs)。