Swift 元数据的更新?.downloadURL().absoluteString返回字符串
我正在尝试更新元数据?.downloadURL().absoluteString,用于提取图像URL,将该URL下载为字符串,然后将图像URL上载到我的Firebase数据库。新Firebase文档中的代码返回void,我不知道如何使其返回图像URL的字符串Swift 元数据的更新?.downloadURL().absoluteString返回字符串,swift,firebase,firebase-realtime-database,firebase-storage,Swift,Firebase,Firebase Realtime Database,Firebase Storage,我正在尝试更新元数据?.downloadURL().absoluteString,用于提取图像URL,将该URL下载为字符串,然后将图像URL上载到我的Firebase数据库。新Firebase文档中的代码返回void,我不知道如何使其返回图像URL的字符串 storageRef.putData(imageData, metadata: nil, completion: {(metadata, error) in if error != nil {
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)
//*******************************************
})
metadata.downloadURL
不再存在(自2018年5月发布以来,SDK中也不存在)。要获取下载URL,现在必须在存储引用上调用downloadURL()
,然后在回调中使用URL
因此,放置需要下载URL的您自己的代码的位置就是它现在所说的//在您从文档中获得的代码中使用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)
}
})
})
你的问题不清楚。请注意,storageRef.downloadURL完成处理程序返回url和错误,因此将url命名为imageData会产生误导性
storageRef.downloadURL{url,如果let error=error{
print(“未能下载url:,错误)
},则会产生错误{
//在这里使用您的url
}
}
非常感谢!我还没有足够的声誉,但我已经点击了复选标记!