ios - Swift 4 Firebase 存储元数据
问题描述
谁能帮我解决这个问题。所以我在 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)
})
我有错误:
if let profileImageUrl = metadata?.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)
}
})
详细解释在官方文档中
尝试并分享结果。
推荐阅读
- php - 循环 the_post_navigation() Wordpress
- sql - 对 LEN 和别名的结果进行分组和计数
- node.js - Nodejs winston 记录端口 514 文件夹/yyyy/mm/dd/.log
- python - 如何仅检查特定 dict 键的唯一值?
- image - 是否有在图像中存储选择的传统方法(例如,用于在 facebook 上标记许多用户?)
- angularjs - 哪个 JS 框架适用于 openlayers?
- odoo - 我可以从 PHP 获取 odoo 8 用户会话吗?
- c++ - 使用 C++ 将 DWORD 转换为字符串
- python-3.x - 抓取学校足球结果页面。如何从数据框中删除 \n\t 并结合几个 bs4.element.ResultSet?
- rest - 如何强制 TRESTRequest.ContentType 为 ctAPPLICATION_JSON