Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何删除Firebase存储文件?_Ios_Swift_Firebase_Swift3_Firebase Storage - Fatal编程技术网

Ios 如何删除Firebase存储文件?

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

我错过什么了吗?web上的答案与我做的事情相同,但是…下载url不再有扩展名,因此我的错误是:

"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
  }
}