2022 年 10 月 18 日に開催される Firebase Summit に、直接会場で、またはオンラインでご参加ください。Firebase を使用してアプリ開発を加速させ、自信を持ってアプリをリリースし、簡単にスケールする方法をご紹介します。 今すぐ登録

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

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

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

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

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

FirebaseSecurityRules言語のコア構文を学ぶことから始めます。

認証を設定する

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

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

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

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

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

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

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

ルールにアクセスする

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

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

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

基本的なルールを書く

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

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

ルールをテストする

FirebaseコンソールでFirebaseセキュリティルールを設定している場合は、 FirebaseRulesPlaygroundを使用して動作をすばやく検証できます。ただし、変更を本番環境にデプロイする前に、 LocalEmulatorSuiteでさらに徹底的にテストすることをお勧めします。

ルールを展開する

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