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

线程1:EXC_BAD_ACCESS试图将图像上载到Firebase,firebase,exc-bad-access,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 erro

我正在尝试将图像上传到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())


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

我只是遇到了类似的问题,我通过压缩图像解决了这个问题

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

这就为我解决了问题。

金的回答对我不起作用。这个问题与这一行有关

Storage().reference()
如中所述,您应该使用

Storage.storage().reference()

这很不直观

非常讨厌!我花了至少一个小时来识别并找到错误。谢谢