Google I/O 2022 で発表された Firebase の最新情報をご覧ください。詳細

Firebaseプロジェクトを設定するための一般的なベストプラクティス

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

このページでは、Firebase プロジェクトを設定し、アプリをプロジェクトに登録するための一般的でハイレベルなベスト プラクティスを提供します。これにより、異なる環境を使用する明確な開発ワークフローを実現できます。このページのベスト プラクティスを理解したら、一般的なセキュリティ ガイドラインを確認してください。

Firebase プロジェクトの階層を理解する

プロジェクト、登録されたアプリ、プロビジョニングされたリソースとサービスを含む、Firebase プロジェクトの基本的な階層を示す図この図は、Firebase プロジェクトの基本的な階層を示しています。主な関係は次のとおりです。

  • Firebase プロジェクトは、すべてのアプリと、プロジェクト用にプロビジョニングされたリソースとサービスのコンテナのようなものです。

  • Firebase プロジェクトには、1 つ以上のFirebase アプリを登録できます (たとえば、アプリの iOS バージョンと Android バージョンの両方、またはアプリの無料バージョンと有料バージョンの両方)。

  • 同じ Firebase プロジェクトに登録されたすべての Firebase アプリは共有し、プロジェクト用にプロビジョニングされたすべての同じリソースとサービスにアクセスできます。ここではいくつかの例を示します。

    • 同じ Firebase プロジェクトに登録されたすべての Firebase アプリは、Firebase Hosting、Authentication、Realtime Database、Cloud Firestore、Cloud Storage、Cloud Functions などの同じバックエンドを共有します。

    • 同じ Firebase プロジェクトに登録されているすべての Firebase アプリは、同じ Google アナリティクス プロパティに関連付けられています。各 Firebase アプリは、そのプロパティ内の個別のデータ ストリームです。

Google Cloud プロジェクトはこの階層のどこに当てはまりますか?

上の図に示されていない Firebase プロジェクト階層の 1 つの側面は、Google Cloud プロジェクトとの関係です。 Firebase プロジェクトは、実際には、追加の Firebase 固有の構成とサービスが有効になっている単なる Google Cloud プロジェクトです。同じ Firebase プロジェクトに登録されたすべてのアプリも、すべての同じ Google Cloud リソースとサービスを共有し、それらにアクセスできることに注意してください。

Firebase プロジェクトを理解するで、Firebase と Google Cloud の関係の詳細をご覧ください。

アプリのバリアントを Firebase プロジェクトに登録する

アプリのバリアントを Firebase プロジェクトに登録するための重要なヒントを次に示します。

  • Firebase プロジェクトに登録されているすべてのアプリが、エンドユーザーの観点から同じアプリケーションのプラットフォーム バリアントであることを確認してください。同じアプリまたはゲームの iOS、Android、ウェブ バージョンを同じFirebase プロジェクトに登録します。

  • 同じ Firebase リソースを共有できるビルド バリアントが複数ある場合は、それらのバリアントを同じFirebase プロジェクトに登録します。たとえば、同じプロジェクト内のブログと Web アプリ、または同じプロジェクト内の同じアプリの無料バージョンと有料バージョンの両方です。

  • (上記のような一般的なエンドユーザー アクティビティやアクセスではなく)リリース ステータスに基づく複数のビルド バリアントがある場合は、各バリアントを個別の Firebase プロジェクトに登録します。例として、デバッグ ビルドとリリース ビルドがあります。これらのビルドをそれぞれ独自の Firebase プロジェクトに登録します。

    • リリース ステータスに基づくビルドでは、同じ Firebase リソースを共有しないでください。これは、デバッグ データが汚染されたり、製品データが上書きされたりするリスクがあるためです。

    • これらの各ビルド バリアントのプラットフォームバリアントは、同じFirebase プロジェクトにある必要があります。たとえば、iOS と Android の両方のデバッグ ビルドを「dev」Firebase プロジェクトに登録します。これは、どちらも同じ非製品データおよびリソースとやり取りできるためです。

マルチテナンシーの回避

マルチテナンシーは、分析集計、共有認証、過度に複雑なデータベース構造、セキュリティ ルールの問題など、意図しない問題など、構成とデータ プライバシーに関する重大な問題につながる可能性があります。

通常、一連のアプリが同じデータと構成を共有していない場合は、各アプリを別の Firebase プロジェクトに登録することを強く検討してください。

たとえば、ホワイト ラベル アプリケーションを開発する場合、個別にラベル付けされたアプリごとに独自の Firebase プロジェクトが必要であり、そのラベルの iOS バージョンと Android バージョンは同じ Firebase プロジェクトにある必要があります。個別にラベル付けされた各アプリは、(プライバシー上の理由から) 他のアプリとデータを共有すべきではありません。

次のステップ