[英]Swift 4 Firebase Storage Metadata
谁能帮助我解决这个问题。 所以我在Swift 4上有一个使用元数据的Firebase存储的代码
这是代码:
let imageName = NSUUID().uuidString
let storageRef = Storage.storage().reference().child("profile_images").child("\(imageName).png")
if let uploadData = UIImagePNGRepresentation(self.profileImageView.image!) {
storageRef.putData(uploadData, metadata: nil, completion: { (metadata, error) in
if error != nil {
print(error)
return
}
if let profileImageUrl = metadata?.downloadURL()?.absoluteString {
let values = ["name": name, "email": email, "profileImageUrl": profileImageUrl]
self.registerUserIntoDatabaseWithUID(uid, values: values as [String : AnyObject])
}
print(metadata)
})
而且我有错误:
如果让profileImageUrl =元数据?.downloadURL()?. absoluteString
错误 :
“ StorageMetadata”类型的值? 没有成员“ downloadURL”
这是我的代码的截图, 请点击这里
有解决方案吗,还是谢谢
从错误中可以看出,元数据没有成员downloadURL。 因此,它已从Firebase的StorageMetadata中删除。 您可以这样做。
let imageName = NSUUID().uuidString
let storageRef = Storage.storage().reference().child("profile_images").child("\(imageName).png")
if let uploadData = UIImagePNGRepresentation(self.profileImageView.image!) {
storageRef.putData(uploadData, metadata: nil, completion: { (metadata, error) in
if error != nil {
print(error)
return
}
storageRef.downloadURL { (url, error) in
guard let downloadURL = url else {
print("an error occurred!")
return
}
let profileImageUrl = downloadURL.absoluteString
let values = ["name": name, "email": email, "profileImageUrl": profileImageUrl]
self.registerUserIntoDatabaseWithUID(uid, values: values as [String : AnyObject])
print(metadata)
}
})
详细的解释是这里的官方文档
尝试并分享结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.