2016-08-12 11 views
4

を削除するために適用このIMGディレクトリに適用される私のルールは、以下のとおりです。Firebaseストレージポストルールはルール

match /img { 
    match /{fileId} { 
    allow read, 
      write: if request.resource.contentType.matches('image/jpeg') 
       || request.resource.contentType.matches('image/png') 
       || request.resource.contentType.matches('image/gif') 
       && request.resource.size < 2 * 1024 * 1024 
    } 
    } 
} 

問題は、それが、書き込み方法があまりにもあるようこれらのルールはまた、()を削除するために適用されていることです常にパーミッションエラーを返します。私はこれに関するドキュメンテーションで何も見つけることができませんでした。 POST/PUTルールとDELETEルールを延期するにはどうすればよいですか?

答えて

11

自分で解決策を見つけました。リソースがまったく送信されない(削除された)ときにルールを適用することによって、書き込み許可も得られます。残りの作成/更新コードはOR式に送られます。

match /img { 
    match /{fileId} { 
     allow read, 
     write: if request.resource == null || 
      (request.resource.contentType.matches('image/jpeg') 
      || request.resource.contentType.matches('image/png') 
      || request.resource.contentType.matches('image/gif') 
      && request.resource.size < 2 * 1024 * 1024) 
    } 
} 
+0

これはFirebaseのドキュメントにあるはずです.... – drdrdrdr

関連する問題