我正在使用Firebase Storage来为我的应用程序提供服务。在我的应用程序中,用户有一个个人资料,可以上传个人头像,然后当他们在未来点击自己的个人资料时,应该下载并显示他们的个人图片。问题是,当我上传和下载照片时,会出现显著的延迟,并且代码似乎没有在应该运行时运行。对于下载,我在我的
ViewWillAppear()
中进行了调用,但即使屏幕已经加载并且我正在点击其他东西,它仍然继续运行。如何加速这个过程?不仅延迟很烦人,而且当我切换到另一个视图或注销并且ViewWillAppear()
中的代码仍在运行时,会导致崩溃。override func viewWillAppear(bool: Bool) {
var retPic : UIImage
let storage = FIRStorage.storage()
let storageRef = storage.referenceForURL("gs://project-xxxxxxxxxxx.appspot.com")
let profPicRef = storageRef.child("images/" + (FIRAuth.auth()?.currentUser?.uid)! + ".jpg")
// Download in memory with a maximum allowed size of 1MB (1 * 1024 * 1024 bytes)
profPicRef.dataWithMaxSize(1 * 4096 * 4096) { (data, error) -> Void in
if (error != nil) {
print(error)
} else {
// Data for "images/island.jpg" is returned
print("This is delayed")
self.retPic = UIImage(data: data!)!
self.imageView.image = self.retPic
print("still here")
self.imageView.reloadInputViews()
}
}
}