Ios 如何删除Firebase存储文件?
我错过什么了吗?web上的答案与我做的事情相同,但是…下载url不再有扩展名,因此我的错误是:Ios 如何删除Firebase存储文件?,ios,swift,firebase,swift3,firebase-storage,Ios,Swift,Firebase,Swift3,Firebase Storage,我错过什么了吗?web上的答案与我做的事情相同,但是…下载url不再有扩展名,因此我的错误是: "error": { "code": 404, "message": "Not Found. Could not delete object" } 代码: 这是行不通的。其他人拥有并使用的是url=“demo.jpg”,我的只是一个带有令牌的字符串,但没有文件扩展名。如果我转到url,我会看到图像,那么有什么问题 编辑: 这是我上传图像的方式: let receiptImageDa
"error": {
"code": 404,
"message": "Not Found. Could not delete object"
}
代码:
这是行不通的。其他人拥有并使用的是url=“demo.jpg”,我的只是一个带有令牌的字符串,但没有文件扩展名。如果我转到url,我会看到图像,那么有什么问题
编辑:
这是我上传图像的方式:
let receiptImageData = UIImageJPEGRepresentation(imagePlaceholder.image!, 0.2)
let metadata = FIRStorageMetadata()
metadata.contentType = "image/jpeg"
let receiptUID = NSUUID().uuidString
DataService.ds.REF_RECEIPTS.child(CURRENT_USER!.uid + "_" + receiptUID).put(receiptImageData!, metadata: metadata) { (metadata, error) in
if let receiptDownloadedUrl = metadata?.downloadURL()?.absoluteString {
self.expenseData(receiptUrl: receiptDownloadedUrl)
// Saving the image/receipt in local cache for faster access
//guard let img = UIImage(data: receiptImageData!) else { return }
//IMAGE_CACHE.setObject(img, forKey: receiptDownloadedUrl as NSString)
}
}
func expenseData(receiptUrl: String) {...}
我也尝试过让receiptUID=nsuid()。我不是专家,但我认为这个ref应该可以工作:DataService.ds.ref\u receives.child().delete。起作用的是:
let url = demo[indexPath.row].downloadUrl
let imageRef = FIRStorage.storage().reference(forURL: url)
imageRef.delete { (error) in
if let error == error {
// error
} else {
// success
}
}
我所知甚少的是,
REF\u receives
引用了存储文件夹,因此我可以put
,但不能delete
这是什么意思,下载url不再有扩展名?他们以前有扩展吗?你可以发布一个你当前url模式的示例吗?当然可以。我将使用上载方法更新…没有文件扩展名中的扩展名。这更有帮助。。当您打印(url)时,打印的url是什么样子的?你能提供一个示例url吗?嗨@Sylar。你可以继续,而不是在文章中编辑它。然后可以将其标记为已接受,以便正确标记此问题。干杯!:)谢谢你,伙计,为什么。文件中没有URL的引用,如果我没有看到你的答案,我会走很糟糕的路。
let url = demo[indexPath.row].downloadUrl
let imageRef = FIRStorage.storage().reference(forURL: url)
imageRef.delete { (error) in
if let error == error {
// error
} else {
// success
}
}