【发布时间】:2019-04-22 12:04:36
【问题描述】:
func uploadProfileImage(_ image:UIImage, completion: @escaping ((_ url:URL?)->())) {
guard let uid = Auth.auth().currentUser?.uid else { return }
let storageRef = Storage.storage().reference().child("user/\(uid)")
let imageData = image.jpegData(compressionQuality: 0.75)
let metaData = StorageMetadata()
metaData.contentType = "image/jpg"
storageRef.putData(imageData!, metadata: metaData)
//Get url
let imageRef = storageRef
imageRef.downloadURL { url, error in
if let error = error {
print(error.localizedDescription)
}else{
print(url.absoluteString)
}
}
}
里面的代码不会执行,它会跳过一切,就像没有存储代码一样。我不确定完成是如何工作的,但我想它会打印错误或打印 url,但它都不会。当我在这里设置断点时,它甚至不会检查是否错误 = 错误。是我做错了什么还是其他人有同样的问题?
imageRef.downloadURL { url, error in
if let error = error {
print(error.localizedDescription)
}else{
print(url.absoluteString)
}
}
【问题讨论】:
-
您的 putData:metadata:completion: 没有完成块。看看这里firebase.google.com/docs/storage/ios/upload-files
标签: swift xcode firebase firebase-realtime-database firebase-storage