2016-06-24 15 views
2

Firebaseセキュリティルールを設定して、同じ名前のファイルが存在しない場合にのみファイルをアップロードできるようにしようとしています。理想的には、新しいファイルの内容が既存のファイルの内容と同じである場合に、ファイルを上書きすることをサポートしたいと思います。リソースがFirebase Storageにまだ存在しない場合にのみ書き込みを許可する

私は次のことを試してみました:

allow write: if !resource; 

allow write: if !resource.size; 

allow write: if request.resource.md5hash == resource.md5hash; 

しかし、どちらもトリックを行うように見えます。彼らがしているのは単にアップロードを許可しないだけです。

答えて

3

私はあなたがこれらの組み合わせをしたいと思う:

service firebase.storage { 
    match /b/<your-bucket>/o { 
    match /path/to/file { 
     // !resource allows the upload of a new file 
     // hash comparison allows re-upload of the same file 
     allow write: if !resource || request.resource.md5hash == resource.md5hash; 
    } 
    } 
} 
+0

はあなたのマイクをありがとう!私はあなたの提案を試みましたが、これらのルールを適用するとアップロードしようとするファイルごとにHTTP 403を取得します。私は 'allow write;'を使うとアップロードさせてくれます。また、「セキュリティルールの取得に失敗しました。」というメッセージが表示されることもあります。 – urish

+0

!リソースも私に問題を与えています。 – dshukertjr