无法删除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错误,指出“未找到对象”,但它是完全一样的网址,那是我访问的图像!

+0

“打印”打印什么? – theblindprophet

+0

你能澄清究竟出了什么问题吗? –

+2

你能举一个你传递给函数的url的例子吗?它可能与URL的格式有关。 –

据我所知,从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