无法从firebase删除图像?

时间:2017-07-06 16:35:20

标签: ios swift firebase firebase-storage

我想使用图片的下载网址从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完全相同!

1 个答案:

答案 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