Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。
このページは Cloud Translation API によって翻訳されました。
Switch to English

Firebaseセキュリティルールを使ってみる

Firebaseセキュリティルールは、Cloud Firestore、Realtime Database、Google Cloud Storageのデータに対して、堅牢で完全にカスタマイズ可能な保護を提供します。このガイドの手順に従ってデータを保護し、悪意のあるユーザーからアプリを保護することで、ルールを簡単に開始できます。

Firebaseセキュリティルール言語を理解する

ルールの作成を開始する前に、使用しているFirebase製品に固有のFirebaseセキュリティルール言語を確認することをお勧めします。ストレージは、 match依存するCommon Expression Language(CEL)のスーパーセットを利用し、定義されたパスでアクセスの条件を設定allowステートメントをallowます。

Firebaseセキュリティルール言語のコア構文を学ぶことから始めます

認証を設定する

まだ行っていない場合は、 Firebase Authenticationをアプリに追加します 。 Firebase Authenticationは、多くの一般的な認証方法をサポートし、Firebase Securityルールと統合して包括的な検証機能を提供します。

アプリに追加のカスタム認証情報を設定できます。

FirebaseセキュリティルールとFirebase Authenticationの詳細をご覧ください。

データとルールの構造を定義する

データの構造化方法は、ルールの構造化と実装方法に影響を与える可能性があります。データ構造を定義するときは、それらがルール構造に与える影響を考慮してください。

たとえば、ストレージでは、各ユーザーの特定の役割を示すフィールドを含めることができます。次に、ルールはそのフィールドを読み取り、それを使用して役割ベースのアクセスを許可できます。

データとルールのアーキテクチャを定義するときは、製品に応じて、ルールがカスケードする方法とカスケードしない方法を覚えておいてください。 Realtime Databaseでは、ルールはトップダウンで機能し、浅いルールが深いルールを上書きします。ルールが特定のパスで読み取りまたは書き込み権限を許可する場合、そのルールはその下のすべての子ノードへのアクセスも許可します。対照的に、Cloud FirestoreとGoogle Cloud Storageでは、ルールはデータ階層の指定されたレベルでのみ適用され、異なるレベルへのアクセスを制御する明示的なルールを記述します。

ルールにアクセスする

既存のルールを表示するには、Firebase CLIまたはFirebaseコンソールを使用します。誤って更新を上書きしないように、必ず同じ方法でルールを編集してください。ローカルで定義されたルールが最新の更新を反映しているかどうかわからない場合、Firebaseコンソールには常に、Firebaseセキュリティルールの最新のバージョンが表示されます。

Firebaseコンソールからルールにアクセスするには、プロジェクトを選択し、左側のナビゲーションパネルで[ ストレージ ]をクリックします。正しいデータベースまたはストレージバケットに移動したら、[ ルール]をクリックします。

Firebase CLIからルールにアクセスするには、firebase.jsonファイルに記載されているルールファイルに移動します

基本的なルールを書く

アプリを開発してルールを理解しているときに、次のよういくつかの基本的な使用例に対処するためにルールを実装してみてください。

  • コンテンツ所有者のみ:ユーザーによるコンテンツへのアクセスを制限します。
  • 混合アクセス:ユーザーによる書き込みアクセスを制限しますが、パブリック読み取りアクセスを許可します。
  • 属性ベースのアクセス:グループまたはユーザーのタイプへのアクセスを制限します。

ルールをテストする

FirebaseコンソールでFirebaseセキュリティルールを設定している場合は、 Firebaseルールプレイグラウンドを使用して動作をすばやく検証できます。

ルールをデプロイする

FirebaseコンソールまたはFirebase CLIを使用して、ルールを本番環境にデプロイします。 Firebaseセキュリティルールの管理とデプロイで説明されている手順に従います。