【问题标题】:Update for metadata?.downloadURL().absoluteString that returns a String返回 String 的 metadata?.downloadURL().absoluteString 更新
【发布时间】:2020-11-12 14:16:28
【问题描述】:

我正在尝试更新 metadata?.downloadURL().absoluteString 以提取图像 URL,将该 URL 作为字符串下载,然后将图像 URL 上传到我的 Firebase 数据库。新的 Firebase 文档中的代码返回 void,我不知道如何使它返回图像 URL 的字符串。

storageRef.putData(imageData, metadata: nil, completion: {(metadata, error) in
                if error != nil {
                    ProgressHUD.showError(error!.localizedDescription)
                    return
                }
                //*********** Need to fix this **************
                let photoUrl = storageRef.downloadURL(completion: {imageData, error in
                    if error != nil {
                        print("Failed to download url:", error!)
                        return
                    } else {
                        //Do something with url
                    }
                    
                })
                //self.sendDatatoDatabase(photoUrl: photoUrl)
                //*******************************************
            })

【问题讨论】:

  • 您的问题不清楚。请注意, storageRef.downloadURL 完成处理程序返回一个 url 和错误,因此将 url 命名为 imageData 具有误导性
  • storageRef.downloadURL { url, error inif let error = error {print("Failed to download url:", error)return} else {// use your url here}}

标签: swift firebase firebase-realtime-database firebase-storage


【解决方案1】:

metadata.downloadURL 不再存在(并且自 2018 年 5 月以来发布的 SDK 中不存在)。要获取下载 URL,您现在必须在存储引用上调用 downloadURL(),然后在回调中使用该 URL。

因此,放置需要下载 URL 的您自己的代码的位置就在您从文档中获得的代码中现在显示 //Do something with url 的位置。如果你想将该 URL 传递给你的 `` 方法,那看起来像:

storageRef.putData(imageData, metadata: nil, completion: {(metadata, error) in
    if error != nil {
        ProgressHUD.showError(error!.localizedDescription)
        return
    }
    //*********** Need to fix this **************
    let photoUrl = storageRef.downloadURL(completion: {url, error in
        if error != nil {
            print("Failed to download url:", error!)
            return
        } else {
            self.sendDatatoDatabase(photoUrl: url)
        }
        
    })
})

【讨论】:

  • 非常感谢!
  • 我还没有足够的声望但是我已经点击了复选标记!
猜你喜欢
  • 2018-11-04
  • 2016-07-17
  • 1970-01-01
  • 1970-01-01
  • 2020-04-28
  • 2014-11-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-28
相关资源
最近更新 更多