我希望得到我的问题的答案,因为如果不解决这个模棱两可的问题,我将无法继续进行我的项目。我的问题是,我使用imagePickerController将大小为7.4 MB的图像上传到了Firebase存储中,但是却获得了24.8 MB。为什么会这样?我该如何解决呢?
注意:我没有对图像大小进行任何更改,而是将其保持原样。
这是代码:
func storeImageInFirebase(){
let storeageRef = Storage.storage().reference()
let imageName = UUID().uuidString + ".jpg"
let imagesReference = storeageRef.child("images").child(imageName)
let imageData = self.imgView.image!.pngData()
let metaData = StorageMetadata()
metaData.contentType = "image/jpg"
imagesReference.putData(imageData!, metadata: metaData){ (metadate, error)
in
guard metadate != nil else{
print("Error: \(String(describing: error?.localizedDescription))")
return
}
// Fetch the download URL
imagesReference.downloadURL(completion: {(url, error)
in
if error != nil {
print("Faild to download url:", error!)
return
}else{
// show the url in real database
}
})
}
}