最終更新:2023-05-22 (月) 17:00:58 (330d)  

Cloud Firestore/セキュリティルール
Top / Cloud Firestore / セキュリティルール

ドキュメント

概要

  • すべてのデータベース リクエストは、データの読み取りまたは書き込みの前に、セキュリティ ルールと照合して評価されます。指定されたいずれかのドキュメント パスへのアクセスがルールによって拒否されると、リクエスト全体が失敗します。

モード

テストモード

  • モバイルおよびウェブ クライアント ライブラリを使用する場合に適していますが、すべてのユーザーがデータを読み書きできます。テストが終わったら、必ずデータのセキュリティ保護セクションを確認してください。
  • ウェブ、Apple プラットフォーム、Android SDK を使用する場合は、テストモードを選択します。
    rules_version = '2';
    service cloud.firestore {
      match /databases/{database}/documents {
        match /{document=**} {
          allow read, write: if
              request.time < timestamp.date(YYYY, MM, DD);
        }
      }
    }

ロックモード

  • モバイルおよびウェブ クライアントからのすべての読み書きを拒否します。認証されたアプリケーション サーバー(C#、Go、Java、Node.js、PHP、Python、Ruby)は引き続きデータベースにアクセスできます。
  • C#、Go、Java、Node.js、PHP、Python、または Ruby サーバー クライアント ライブラリを使用する場合は、ロックモードを選択します。
    rules_version = '2';
    service cloud.firestore {
      match /databases/{database}/documents {
        match /{document=**} {
          allow read, write: if false;
        }
      }
    }

デフォルトはアクセス禁止

  • セキュリティ ルールによって明示的にアクセスが許可されているドキュメントのみにアクセスできます

宣言

  • service cloud.firestore {
      match /databases/{database}/documents {
        // ...
      }
    }

ルール

  • match - ドキュメントパスを指定
  • allow - 読み込みを許可するときに詳細を指定

read

  • get
  • list

write

  • create
  • update
  • delete

メモ

  • allow
  • request.auth.uid
  • match

allow

  • read
  • create
  • update
  • delete

if

再帰ワイルドカード構文

  • {name=**}

変数

  • function isMine(){
    return resource.data.user.userId==request.auth.uid;
    }