我想使用图片的下载网址从firebase删除图片。当我复制&将网址粘贴到浏览器中我可以查看该文件。但是,当我通过下面的函数在firebase中传递它时,它不会被删除。
func removeMediaFromFirebase(url:String) {
let imageRef = FIRStorage.storage().reference(forURL: url)
imageRef.delete { (error) in
if error != nil {
DILog.print(items: "Unable to delete \(error.debugDescription)")
}
}
}
它会导致404错误,说明"找不到对象",但它与我访问图像的URL完全相同!
答案 0 :(得分:1)
据我所知,通过提供删除功能的图像下载URL,无法从Firebase存储中删除图像。
应该用作参数的URL是文件的存储路径,而不是实际的文件URL。所以不要使用downloadURL
函数来获取文件URL,而是使用文件路径。在他们的网站上有一个很棒的文档,我认为你应该阅读它以熟悉它。
无论如何,这里有一个关于URL实际含义的例子:
let imageURL = "/path/to/image.jpg"
let imageReference = FIRStorage.storage().reference(forURL: imageURL)
或者这样:
let imageReference = FIRStorage.storage().reference().child("/path/to/image.jpg")
获取图像参考后,您可以对其执行删除:
imageReference.delete { error in
if let error = error {
// Uh-oh, an error occurred!
} else {
// File deleted successfully
}
}
这样它应该有效。要查看更多示例,请查看Firebase documentation