Firebase Summit で発表されたすべての情報をご覧ください。Firebase を使用してアプリ開発を加速し、自信を持ってアプリを実行する方法を紹介しています。詳細

Firebaseセキュリティルールの使用を開始する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

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

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

ルールを書き始める前に、使用している Firebase 製品に固有の Firebase セキュリティ ルール言語を確認することをお勧めします。 Realtime Database は、ルールに JavaScript に似た構文と JSON 構造を利用します。

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

認証の設定

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

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

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

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

セキュリティのためのデータを定義する

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

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

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

ルールにアクセスする

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

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

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

基本的なルールを書く

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

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

ルールをテストする

Firebase コンソールで Firebase Security Rules を設定している場合は、 Firebase Rules Playgroundを使用して動作をすばやく検証できます。ただし、変更を本番環境にデプロイする前に、 Local Emulator Suiteを使用してより徹底的にテストすることをお勧めします。

ルールを展開する

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