无法删除Firebase中的图片?
问题描述:
我想从图片的下载网址中删除Firebase中的图片。当我复制&将URL粘贴到浏览器中时,我可以查看该文件。但是,当我通过下面的函数将它传递给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错误,指出“未找到对象”,但它是完全一样的网址,那是我访问的图像!
答
据我所知,从Firebase存储中删除图像不可能通过提供图像下载URL来删除功能。
应该用作参数的URL是文件的存储路径,而不是实际的文件URL。所以不要使用downloadURL
函数来获取文件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
“打印”打印什么? – theblindprophet
你能澄清究竟出了什么问题吗? –
你能举一个你传递给函数的url的例子吗?它可能与URL的格式有关。 –