我正在尝试下载一个 url 以存储在我的数据库中,但 Firebase 中的新更新要求我使用新的方法来下载 url,从而禁止我这样做。这是我的代码:
let imageName = NSUUID().uuidString
let storageRef = storage.reference().child("project_images").child("\(imageName)")
guard let uplodaData = UIImageJPEGRepresentation(image, 1) else {
return
}
let uploadTask = storageRef.putData(uplodaData, metadata: nil, completion: { (metadata, error) in
if error != nil{
print(error ?? "Failed to upload data in the uploadImages object there was an error:", error!)
return
}
如果我在这里放置一个断点,它不会继续到下一节,我不知道为什么。当存储在错误的节点或其他东西时,我通常会看到这些问题。
metadata?.storageReference?.downloadURL(completion: { (url, error) in
if error != nil {
print("Failed to download url:", error!)
return
}
let url = "\(String(describing: url))"
uploadedImageUrlsArray.append(url)
uploadCount += 1
if uploadCount == imagesCount{
completionHandler(uploadedImageUrlsArray)
}
})
})
当我只是一个断点时,我可以在完成时检查错误变量,它是零。
有人可以告诉我我在这里做错了什么吗。
最佳答案
您为此特定图像创建了一个存储引用,因此使用它代替 metadata?.storageReference
。
storageRef.downloadURL(completion: { (url, error) in
if error != nil {
print("Failed to download url:", error!)
return
}
let url = "\(String(describing: url))"
uploadedImageUrlsArray.append(url)
uploadCount += 1
if uploadCount == imagesCount{
completionHandler(uploadedImageUrlsArray)
}
})
})
关于swift - metadata?.storageReference?.downloadURL() 返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50515429/