2017-01-09 11 views
1

私は何かを逃したことがありますか?ウェブ上の回答は私のエラーが言うように、ダウンロードURLは、もはや拡張子を持っている....私と同じことをしないが:Firebaseストレージファイルを削除するには?

"error": { 
    "code": 404, 
    "message": "Not Found. Could not delete object" 
} 

コード:動作しません

let url = demo[indexPath.row].downloadUrl 
print(url) // shows the url 

DataService.ds.REF_RECEIPTS.child(url).delete { (error) in 
    if error != nil { 
    print(error) 
    } 
} 

。他の人が持っていて働いているのは、url = "demo.jpg"です。私のものはトークンを持つ文字列ですが、ファイル拡張子はありません。私がURLに行くと私はイメージを見て何が間違っているのですか?

編集:私はまたlet receiptUID = NSUUID().uuidString + ".jpg"が、同じ問題が試してみた

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) {...} 

これは私が画像をアップロードする方法です。

+0

ダウンロードURLには拡張機能がありません。どういう意味ですか?前に拡張機能を使用していましたか?現在のURLスキーマのサンプルを投稿できますか? – eshirima

+0

確かに。アップロードメソッドで更新します.... – Sylar

+0

ファイル拡張子のような拡張子はありません。 – Sylar

答えて

2

私は参考に間違いました。私は専門家ではありませんが、このリファレンスが動作するはずです:DataService.ds.REF_RECEIPTS.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 
    } 
} 

リトルは、私が知っていたことそれはなぜでしputなくdelete理由ですのでREF_RECEIPTSは、ストレージフォルダを参照したということでした。

+1

ありがとう、なぜあなたの答えが見えない場合、forreference forUrlがドキュメントにないのですか、私は厄介な方法に行くつもりです。 – fullMoon

関連する問題