首页 > 解决方案 > Firebase Xcode Swift - 卡在 downloadURL

问题描述

我知道 downloadURL 功能已被弃用,但我似乎无法让新的完成功能工作:

@IBAction func postButtonClicked(_ sender: Any) {

    let mediaFolder = Storage.storage().reference().child("media")

    if let data = UIImageJPEGRepresentation(postImage.image!, 0.5) {

        mediaFolder.child("\(uuid).jpg").putData(data, metadata: nil, completion: { (metadata, error) in
            if error != nil {
                let alert = UIAlertController(title: "Error", message: error?.localizedDescription, preferredStyle: UIAlertControllerStyle.alert)
                let okButton = UIAlertAction(title: "OK", style: UIAlertActionStyle.cancel, handler: nil)

                alert.addAction(okButton)
                self.present(alert, animated: true, completion: nil)

            } else {
                let imageURL = mediaFolder.downloadURL(completion: { (url, error) in
                    if error != nil {
                        print("error!!!!")
                    } else {
                        return url?.absoluteString
                    }



                })
                print(imageURL)

            }


        })

    }

}

我只是无法让它工作。我总是得到错误!!!!日志中的消息,我不知道为什么。在过去的 3 个小时里,我一直在为这段代码苦苦挣扎,由于某种原因,我无法打印 imageURL。

我想要的只是让 imageURL 等于 url?.absoluteString

任何帮助将不胜感激

标签: swiftfirebasefirebase-storage

解决方案


您没有得到要打印的 URL,因为您没有查询正确的存储引用。

首先,检查图像是否真的上传到存储中,然后mediaFolderelse语句中将子 ID 添加到您的:

 mediaFolder.child("\(uuid).jpg").downloadURL(completion: { (url, error) in
 })

推荐阅读