我有将多个图像保存到Firebase中的代码。我更新了Pod,此后必须更改我的downloadURL代码。这样做之后,URL将不会显示在数据库中,它的“发布”部分也不会显示。这个问题似乎与this相似。在控制台中,出现以下错误:
Error Domain = FIRStorageErrorDomain代码= -13010“对象 email@email.com/post/string#.string#.jpg不存在。” UserInfo={object=email@email.com/post/string#.string#.jpg, ResponseBody = {
并且:
},bucket = yubipracticearraybasicimg1.appspot.com,数据= <7ba2020 2265722 6f72223a 207b020 20202022 636f465 2232034 30342c0a 20202020 226d6573 73616765 223a2022 4e6f420 46f756e 642e2020 436f56c 642af7a_76a_76a_76a_76a_a76_a76_76a_a7622 charset = UTF-8,NSLocalizedDescription =对象email@email.com/post/string#.string#.jpg不存在。,ResponseErrorDomain = com.google.HTTPStatus,ResponseErrorCode = 404}
这两种情况都是在我按下将数据发送到Firebase的按钮后发生的。 下面是有问题的代码:
第1块:
storageRef.downloadURL { (url, error) in
if error != nil {
print("Failed to download url:", error!)
return
}
let imageUrl = "\(String(describing: url))"
postRef.child(autoID).setValue(imageUrl)
}
第2块:
storageRef.downloadURL { (url, error) in
if error != nil {
print("Failed to download url:", error!)
return
}
let imageUrl = "\(String(describing: url))"
// let value = ["Image\(self.number)": imageUrl] as [String : Any]
let value = [autoID: imageUrl] as [String : Any]
postRef.updateChildValues(value)
}
在此先感谢您的帮助!
答案 0 :(得分:1)
您可能在两个数据块所在的put数据方法中使用了不同的URL存储引用。
您可能会遇到这样的情况,其中 childStorageRef 是不同于storageRef的引用:
childStorageRef.putData(uploadData, metadata: nil) { (metadata, err) in
storageRef.downloadURL { (url, error) in
if error != nil {
print("Failed to download url:", error!)
return
}
let imageUrl = "\(String(describing: url))"
postRef.child(autoID).setValue(imageUrl)
}
}
将此引用更改为此:
storageRef.putData(uploadData, metadata: nil) { (metadata, err) in
storageRef.downloadURL { (url, error) in
if error != nil {
print("Failed to download url:", error!)
return
}
let imageUrl = "\(String(describing: url))"
postRef.child(autoID).setValue(imageUrl)
}
}
与第2块相同。希望这会有所帮助!