我正在创建一个功能,可以将个人资料照片上传到Firebase。但是,下载网址有问题。错误[StorageMetadata类型的值没有成员'downloadURL']。请告知如何修改此代码块。作为Users类,我的签名为uid,用户名,电子邮件和profilePicLink。
func uploadProfilePic(profileImage:UIImage){
var dataBaseRef = Database.database().reference()
let profileImageRef = Storage.storage().reference().child("profileImages")
.child("\(NSUUID().uuidString). jpg")
if let imageData = profileImage.jpegData(compressionQuality: 0.75){
profileImageRef.putData(imageData,metadata:nil)
{
metadata, error in
if error != nil {
print(error!)
return
} else {
print(metadata!)
if let downloadUrl = metadata?.downloadURL()?.absoluteString{
if (self.profilePicLink == ""){
self.profilePicLink = downloadUrl
Database.dataBaseRef.child("users").child(self.uid).updateChildValues(["profilePicLink": downloadUrl])
}
}
}
}
}
}
错误消息告诉您,作为metadata
类型对象的StorageMetadata变量没有方法调用downloadURL()
。
如果要获取下载URL,则应遵循Firebase文档中有关generating a download URL的说明。您可以在那里看到downloadURL()是StorageReference上的一种方法。您的引用位于profileImageRef
中,因此您需要在其上调用downloadURL()。