繁体   English   中英

Swift 4 Firebase存储元数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM