我试图像这样将图像上传到Firebase:
let storageRef = Storage().reference()
if let uploadData = self.profileImageView.image!.pngData() {
storageRef.putData(uploadData, metadata: nil, completion: { (metadata, error) in
if error != nil {
print(error as Any)
return
}
print(metadata as Any)
})
}
,它将我重定向到以下代码:
- (void)dispatchAsync:(void (^)(void))block {
dispatch_async(self.dispatchQueue, block);
}
它不会通过if let语句。 (如果让uploadData = self.profileImageView.image!.pngData())
我不知道为什么。它不会在控制台中给我任何其他错误消息。
答案 0 :(得分:1)
king_T的回答对我不起作用。问题与此线有关
Storage().reference()
如this post中所述,您应该使用
Storage.storage().reference()
这很不直观。
答案 1 :(得分:0)
我也遇到了类似的问题,我通过压缩图像来解决了这个问题。
let scaledimage = self.profileImageView.image!.jpegData(compressionQuality: 0.5)
let storageRef = Storage().reference()
if let uploadData = scaledimage {
storageRef.putData(uploadData, metadata: nil, completion: { (metadata, error) in
if error != nil {
print(error as Any)
return
}
print(metadata as Any)
})
}
为我解决了这个问题。