线程1:EXC_BAD_ACCESS尝试将图像上传到Firebase

时间:2018-11-13 05:16:07

标签: firebase exc-bad-access

我试图像这样将图像上传到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())

我不知道为什么。它不会在控制台中给我任何其他错误消息。

2 个答案:

答案 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)
            })
}

为我解决了这个问题。