ファイルがFirebase Storageにすでに存在するかどうかを確認するには、getDownloadUrl()
を呼び出します。
ref.child('example.png').getDownloadURL()
.then(url => {
// File exist
})
.catch(err => {
// File didnt exist or other error
});
EDIT: 同じ名前を持つ2枚の異なる画像のアップロードを防止するために、私は、画像のbase64エンコードMD5ハッシュで各画像をマークするために、customMetadataを利用することを示唆しています。そして、アップロード時に同じ名前の画像に出会ったときに、このハッシュを比較のために使用します。同じ名前の画像が異なる場合は、画像の名前を変更する必要があります。同じ名前の2つ以上の画像を処理するには、このプロセスを繰り返してください。
私が何を意味するか説明するためにいくつかの擬似コード:
uploadImg(img){
hash = create base64 md5 hash of image
do {
if(filename exist in storage){
get storage file metadata in order to get a hold of its hash
if(hash is equal to hash from storage){
use file in storage instead
}
else{
alter the filename eg. using a counter and make the do-while-loop run again
}
else{
uploadFile(img, metadata containing hash)
}
}while(other file with same name exist in storage)
}
感謝を。これが存在するかどうかはわかりませんでした。これは私の問題をある程度助けますが、同じ名前の2つの異なるイメージをアップロードするとどうなりますか? –