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

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

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

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

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

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

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

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

    • 同じFirebaseプロジェクトに登録されているすべてのFirebaseアプリは、Firebaseホスティング、認証、リアルタイムデータベース、Cloud Firestore、Cloud Storage、CloudFunctionsなどの同じバックエンドを共有します。

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

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

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

Firebaseプロジェクトの理解でFirebaseとGoogleCloudの関係について詳しく知る

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

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

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

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

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

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

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

マルチテナンシーの回避

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

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

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

次のステップ