facebook twitter hatena line email

Gcp/Firebase/Firestore/ルール

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

すべて読み書き許可

初期はデバッグ用でこのようになってる

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write;
    }
  }
}

そのままにしてると、以下メールが来る。

[Firebase] Cloud Firestore データベースに安全でないルールがあります
セキュリティ ルールに関する次の問題が検出されました:
すべてのユーザーがデータベース全体を読み取ることができます
すべてのユーザーがデータベース全体に書き込むことができます
プロジェクトに強力なセキュリティ ルールが設定されていないため、誰でもデータベース全体にアクセスできます。攻撃者はデータを窃取、変更、削除でき、請求額を増やすことも可能です。
分析は毎日実行されます。過去 24 時間以内にルールを変更した場合、そのルールは考慮されていない可能性があります。

指定したコレクションの読み書き許可

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userID} {
      allow read, write;
    }
  }
}

users以外のコレクションがあったときは読み書き許可となる様子。

指定した複数のコレクションの読み書き許可

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userID} {
      allow read, write;
    }
    match /scores/{scoreID} {
      allow read, write;
    }
  }
}

指定したコレクションの読み書きすべて拒否

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

documentのコレクションがあったときは読み書き拒否

参考

https://qiita.com/sgr-ksmt/items/1a731fdadf06119d35fc