更新した Firebase セキュリティ ルールを Firebase コンソールですばやくテストするには、Rules Playground を使用します。
ルール プレイグラウンドは、新しい動作を調べたり、ルールを作成しながらすばやく検証したりするときに使用できる便利なツールです。シミュレーションに設定したパラメーターに従って、アクセスが許可または拒否されたことを確認するメッセージが表示されます。
ルール プレイグラウンドを使用する
- Firebase コンソールを開き、プロジェクトを選択します。
- 次に、製品ナビゲーションから、次のいずれかを実行します。
- 必要に応じてRealtime Database 、 Cloud Firestore 、またはStorageを選択し、[ルール] をクリックしてルール エディタに移動します。
- 編集が完了したら、エディターから [ルール プレイグラウンド] をクリックします。
- ルール プレイグラウンドの設定で、次のようなテストのオプションを選択します。
- 読み取りまたは書き込みのテスト。
- データベースまたはストレージ バケット内の特定の場所をパスとして指定します。
- 認証タイプ — 認証されていない、認証された匿名ユーザー、または特定のユーザー ID。
- ルールが明確に参照するドキュメント固有のデータ (たとえば、ルールが書き込みを許可する前に特定のフィールドの存在を必要とする場合)。
- [実行]をクリックし、エディターの上のバナーで結果を探します。
ルール プレイグラウンドのサンプル シナリオ
次のサンプル シナリオと基本ルールを使用して、ルール プレイグラウンドの動作をテストします。
クラウド ファイアストア
service cloud.firestore {
match /databases/{database}/documents {
// Allow only authenticated content owners access
match /some_collection/{document} {
allow read, write: if request.auth != null && request.auth.uid == request.resource.data.author_uid
}
}
}
リアルタイム データベース
// These rules grant access to a node matching the authenticated // user's ID from the Firebase auth token { "rules": { "users": { "$uid": { ".read": "$uid === auth.uid", ".write": "$uid === auth.uid" } } } }
クラウドストレージ
// Grants a user access to a node matching their user ID
service firebase.storage {
match /b/{bucket}/o {
// Files look like: "user/<UID>/path/to/file.txt"
match /user/{userId}/{allPaths=**} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}
}
}
ルール エディタで、上記のルールを追加します。
[シミュレーション タイプ] ドロップダウン メニューから [取得] を選択し、[場所] フィールドに有効なパスを入力します。
[認証] をオンにして、[プロバイダー] ドロップダウンから認証タイプを選択します。
ユーザー ID の詳細を入力し、[実行] をクリックします。
シミュレーションの結果がエディターの上部に表示されます。入力したユーザー ID の詳細に応じて、読み取りが正常に許可または拒否されたことを確認するバナーが表示されます。