このページでは、Firebase プロジェクトに関するいくつかの重要なコンセプトの概要を説明します。リンクがある場合はそのページに移動し、機能、サービス、ツール、ベスト プラクティスについて詳細な情報を確認してください。
Firebase プロジェクト、アプリ、プロダクトの関係
Firebase プロジェクトは Firebase の最上位のエンティティです。プロジェクトでは、Apple アプリ、Android アプリ、ウェブアプリを登録できます。Firebase にアプリを登録すると、Analytics、Cloud Firestore、Performance Monitoring、Remote Config などの Firebase プロダクト用の Firebase SDK をいくつでも追加できます。
このプロセスの詳細については、次のプラットフォーム向けのスタートガイドをご覧ください。
iOS+ | Android | ウェブ | Unity | C++ | Flutter
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 アプリは、そのプロパティの個別のデータ ストリームになります。
Firebase プロジェクトと Google Cloud の関係
新しい Firebase プロジェクトを作成するときに、実際には Google Cloud プロジェクトを作成しています。はじめに Google Cloud プロジェクトを作成し、その後に Firebase を追加することもできます。Google Cloud プロジェクトは、データ、コード、構成、サービスのための仮想的なコンテナと考えることができます。
すべての Firebase プロジェクトについて、Google Cloud コンソールのプロジェクトの [ラベル] ページに firebase:enabled
というラベルが Firebase によって自動的に追加されます。このラベルについて詳しくは、よくある質問をご覧ください。
Firebase プロジェクトは Google Cloud プロジェクトであるため、次のような特長があります。
プロジェクトには、Firebase コンソールだけでなく、Google Cloud コンソールや Google API Console からアクセスして操作できます。
プロジェクトを操作するには、Firebase CLI、gcloud CLI、Google の Terraform リソースを使用します。
プロジェクトで、Firebase と Google Cloud の両方のプロダクトと API を使えます。
プロジェクトの IAM 権限とロールは、Firebase と Google Cloud 間で共有されます。プロジェクト メンバー(プリンシパル)が Google Cloud プロジェクトに対して持っているアクセス権は、Firebase プロジェクトにも適用されます(その逆も同様です)。
プロジェクトでの課金は、Firebase と Google Cloud 間で共有されます。Google Cloud プロジェクトで課金が有効になっている場合、Firebase プロジェクトは Firebase の従量課金制の Blaze 料金プランになります。
プロジェクトの一意の識別子(プロジェクト番号やプロジェクト ID など)は、Firebase と Google Cloud 間で共有されます。
Google Cloud プロジェクトに適用されているリソース階層(組織、フォルダなど)は、Firebase プロジェクトにも適用されます。
プロジェクトを削除すると、Firebase と Google Cloud の両方で削除されます。
プロジェクト内のリソースやデータの削除または変更は、Firebase と Google Cloud の両方に適用されます。
Firebase プロジェクトの設定とアプリの登録
Firebase コンソールで Firebase プロジェクトを設定し、アプリを登録できます(高度な用途の場合は Firebase Management REST API または Firebase CLI も使用できます)。プロジェクトを設定してアプリを登録する際は、組織上の決定を行い、Firebase 固有の構成情報をローカル プロジェクトに追加する必要があります。
本番環境のアプリでは、明確な開発ワークフローを設定する必要があります。これには通常、複数の環境が使用されます。デベロッパーのワークフローに関するドキュメント(一般的なベスト プラクティス、セキュリティに関する一般的なガイドラインなども含む)を参照して、Firebase プロジェクトの設定とアプリの登録を行い、開発ワークフローを作成してください。
Firebase プロジェクトの操作
プロダクト SDK に加えて、いくつかの異なるツールとインターフェースを使用して Firebase プロジェクトを直接操作できます。
Firebase コンソール
Firebase コンソールによって、機能の充実した環境で Firebase プロダクト、アプリ、プロジェクト レベルの設定を管理できます。
コンソール左側のパネルに、最上位のカテゴリ別に整理された Firebase プロダクトの一覧が表示されます。左側のパネルの上部で 統合、アクセス権限、課金があります。
をクリックして、プロジェクトの設定を開きます。プロジェクトの設定には、コンソール中央には、さまざまな種類のアプリを登録するための設定ワークフローを起動するボタンが表示されます。Firebase の利用を開始すると、コンソールのメインエリアが、使用中のプロダクトの状態を表示するダッシュボードに変わります。
Firebase プロジェクトは Google Cloud プロジェクトでもあるため、タスクやプロダクトによっては、Firebase コンソールではなく Google Cloud を使用する必要があります。
Firebase CLI(コマンドライン ツール)
Firebase には、Firebase Hosting、Cloud Functions for Firebase、Firebase Extensions など、特定の Firebase プロダクトの構成と管理を行うための Firebase CLI も用意されています。
CLI をインストールすると、グローバル firebase
コマンドにアクセスできるようになります。ローカルアプリ ディレクトリを Firebase プロジェクトにリンクして、Firebase にホストされたコンテンツの新バージョンのdeployや関数の更新を行う際にこの CLI を使用します。
Firebase Management REST API
Firebase Management REST API を使うと、Firebase プロジェクトをプログラムで管理できるようになります。たとえば、プログラムでアプリをプロジェクトに登録したり、すでに登録されているアプリ(iOS+ | Android | ウェブ)を一覧表示できます。
Firebase プロジェクト ID
Firebase プロジェクトは、Firebase バックエンドや各種デベロッパー インターフェースで、プロジェクト名、プロジェクト番号、プロジェクト ID などの識別子を使用して確認できます。
プロジェクト名
プロジェクトを作成する際には、プロジェクト名を設定します。この識別子は、Firebase コンソール、Google Cloud コンソール、Firebase CLI でプロジェクトを内部限定で表す名称になります。さまざまなプロジェクトをより簡単に見分けられるようにするためのものであり、Firebase や Google Cloud で公開されているどのプロダクト、サービス、リソースでも、このプロジェクト名は非公開となっています。
プロジェクト名は Firebase コンソールの [プロジェクトの設定] でいつでも編集できます。プロジェクト名は上部ペインに表示されます。
プロジェクト番号
Firebase プロジェクトとその関連 Google Cloud プロジェクトにはプロジェクト番号が付けられます。これは、Google が割り当てた、プロジェクト用のグローバルに一意で正規の識別子です。この識別子は、統合を構成する場合や、Firebase、Google、サードパーティのサービスに対して API 呼び出しを行う場合に使用します。
プロジェクト番号は編集できません。プロジェクトを削除すると、プロジェクト番号も削除されます。また、その番号を他のプロジェクトでもう一度使用することもできなくなります。
プロジェクト ID
Firebase プロジェクトとその関連 Google Cloud プロジェクトにはプロジェクト ID が付けられます。これは、すべての Firebase と Google Cloud において一意のユーザー定義のプロジェクト用識別子です。Firebase プロジェクトを作成する際、プロジェクトには一意の ID が自動的に割り当てられますが、プロジェクトの設定時に編集できます。通常この識別子は、プロジェクトを参照するための便宜的なエイリアスとして扱われます。
Firebase 構成ファイルとオブジェクト
アプリを Firebase プロジェクトに登録すると、Firebase コンソールに Firebase 構成ファイル(Apple アプリか Android アプリ)または構成オブジェクト(ウェブアプリ)が表示されるので、これをローカルアプリ ディレクトリに直接追加します。
- Apple アプリの場合は、
GoogleService-Info.plist
構成ファイルを追加します。 - Android アプリの場合は、
google-services.json
構成ファイルを追加します。 - ウェブアプリの場合は、Firebase 構成オブジェクトを追加します。
アプリの Firebase 構成ファイルまたは Firebase 構成オブジェクトはいつでも入手できます。
Firebase 構成ファイルまたは Firebase 構成オブジェクトによって、特定の Firebase プロジェクトとそのリソース(データベース、ストレージ バケットなど)がアプリに関連付けられます。構成に含まれている「Firebase オプション」は、Firebase や Google サービスが Firebase サーバー API と通信したり、クライアント データを Firebase プロジェクトや Firebase アプリに関連付けたりするために必要なパラメータです。次に、最低限必要な「Firebase オプション」を示します。
API キー: 非公開のユーザーデータへのアクセスを必要としない特定の API を呼び出すときに使用される、暗号化された簡単な文字列(値の例:
AIzaSyDOCAbC123dEf456GhI789jKl012-MnO
)プロジェクト ID: すべての Firebase と Google Cloud において一意のユーザー定義のプロジェクト識別子。この識別子は、一部の Firebase リソースでは URL や名前に表示されますが、通常はプロジェクトを参照するための便宜的なエイリアスとして扱われます(値の例:
myapp-project-123
)。アプリケーション ID(「AppID」): すべての Firebase において一意の Firebase アプリ識別子。形式はプラットフォームによって異なります。
- Firebase Apple アプリ:
GOOGLE_APP_ID
(値の例:1:1234567890:ios:321abc456def7890
)
これは Apple バンドル ID ではありません。 - Firebase Android アプリ:
mobilesdk_app_id
(値の例:1:1234567890:android:321abc456def7890
)
これは Android パッケージ名または Android アプリケーション ID ではありません。 - Firebase ウェブアプリ:
appId
(例:1:65211879909:web:3ae38ef1cdcb2e01fe5f0c
)
- Firebase Apple アプリ:
Firebase 構成ファイルまたは Firebase 構成オブジェクトの内容は公開情報とみなされます。公開であるとみなされる情報としては、アプリのプラットフォーム固有の ID(Apple バンドル ID または Android パッケージ名)や Firebase プロジェクト固有の値(API キー、プロジェクト ID、Realtime Realtime Database URL、Cloud Storage バケット名など)があります。このような点を考慮したうえで、Firebase Security Rules を使用し、Realtime Database、Cloud Firestore、Cloud Storage にあるデータとファイルを保護してください。
オープンソース プロジェクトの場合、一般的に考えて、ソース管理にアプリの Firebase 構成ファイルや Firebase 構成オブジェクトを含めることはおすすめできません。ほとんどの場合、ユーザーは独自の Firebase プロジェクトを作成し、(独自の Firebase 構成ファイルまたは Firebase 構成オブジェクトを使用して)アプリが独自の Firebase リソースを参照するように設定すると想定されるからです。
Firebase プロジェクト、アプリ、サイトの一般的な制限事項
Firebase プロジェクト、アプリ、サイトの一般的な制限事項は次のとおりです。
アカウントあたりのプロジェクト数
- Spark の料金プラン - プロジェクト作成割り当ての上限によって、少ない数しか保有できません(通常は約 5~10)。
- Blaze 料金プラン - 関連付けられた Cloud Billing アカウントが良好な状態である限り、アカウントあたりにプロジェクト作成割り当てが大幅に増加します。
多くのデベロッパーにとってプロジェクト作成割り当ての上限が問題になることはほとんどありませんが、必要に応じてプロジェクト割り当ての増加をリクエストできます。
プロジェクトが完全に削除されるまで 30 日かかります。完全に削除されるまではプロジェクト割り当てにカウントされます。
プロジェクトあたりのアプリ数
Firebase プロジェクト内の Firebase アプリの合計数は 30 個までに制限されています。
エンドユーザーから見て、1 つの Firebase プロジェクト内のすべての Firebase アプリが、同じアプリケーションのプラットフォーム別のバリアントとなるようにしてください。マルチテナンシーの詳細については、ベスト プラクティスのドキュメントをご覧ください。
詳しくは、よくある質問のプロジェクトごとのアプリ数の上限をご覧ください。
プロジェクトあたりの Hosting サイトの数
Firebase Hosting マルチサイト機能では、プロジェクトごとに最大 36 個のサイトがサポートされます。
アプリのリリース
- Google Cloud コンソールでプロジェクトの予算アラートを設定する。
- Firebase コンソールの [使用量と請求額] ダッシュボードをモニタリングして、複数の Firebase サービスを通じたプロジェクトの全体的な使用状況を確認する。
- Firebase リリース チェックリストを確認する。