その他の課題がある場合や、該当する問題が以下で見つからない場合は、バグの報告または機能のリクエストをお送りください。また、Stack Overflow のディスカッションにご参加ください。
Firebase プロジェクトと Firebase アプリ
Firebase プロジェクトとは何ですか?
Firebase プロジェクトは Firebase の最上位のエンティティです。プロジェクトでは、Apple アプリ、Android アプリ、ウェブアプリを登録できます。アプリを Firebase に登録すると、プロダクト固有の Firebase SDK(Analytics、Cloud Firestore、Crashlytics、Remote Config など)をアプリに追加できます。
アプリの Apple、Android、ウェブ バリエーションを単一の Firebase プロジェクト内に登録する必要があります。複数の環境(開発、ステージング、本番環境)をサポートするには、このような Firebase プロジェクトを複数使用できます。
Firebase プロジェクトについて詳しく学習するためのリソースを以下にご紹介します。
- Firebase プロジェクトについて理解する - Firebase プロジェクトに関するいくつかの重要なコンセプト(Google Cloud との関係、プロジェクトとそのアプリやリソースの基本階層など)について簡単に説明します。
- Firebase プロジェクトの設定に関する一般的なベスト プラクティス - Firebase プロジェクトを設定し、プロジェクトにアプリを登録するための一般的でハイレベルなベスト プラクティスについて説明します。このベスト プラクティスに従うことで、個々の環境を利用する際の明確な開発ワークフローを作成できます。
すべての Firebase プロジェクトについて、Google Cloud コンソールのプロジェクトの [ラベル] ページに firebase:enabled
というラベルが Firebase によって自動的に追加されます。このラベルについて詳しくは、よくある質問をご覧ください。
Google Cloud 組織とは何ですか?
Google Cloud 組織は、Google Cloud プロジェクト(Firebase プロジェクトを含む)のコンテナです。この階層により、Google Cloud プロジェクトと Firebase プロジェクトの編成、アクセス管理、監査を適切に行うことができます。詳細は、組織の作成と管理をご覧ください。
既存の Google Cloud プロジェクトに Firebase を追加する方法を教えてください。
既存の Google Cloud プロジェクトが Google Cloud コンソールまたは Google API Console で管理されている場合があります。
これらの既存の Google Cloud プロジェクトに Firebase を追加するには、次のいずれかのオプションを使用します。
- Firebase コンソールを使う。
- プログラムで行う場合:
- Firebase Management REST API エンドポイント
projects.addFirebase
を呼び出します。 - Firebase CLI コマンド
firebase projects:addfirebase
を実行する。 - Terraform を使用します。
- Firebase Management REST API エンドポイント
詳しくは、Firebase を Google Cloud プロジェクトに追加するをご覧ください。
Firebase と Google Cloud の統合はどのように機能しますか?
Firebase は Google Cloud と緊密に統合されています。プロジェクトは Firebase と Google Cloud で共有されるため、プロジェクトで Firebase サービスと Google Cloud サービスを有効にできます。Firebase コンソールまたは Google Cloud コンソールから同じプロジェクトにアクセスできます。詳細は以下のとおりです。
- 一部の Firebase プロダクト(Cloud Storage for Firebase など)は Google Cloud を直接基盤としています。Google Cloud を基盤とするプロダクトは今後も増える予定です。
- 共同編集者や請求情報を含む多くの設定は、Firebase と Google Cloud で共有されます。Firebase と Google Cloud の両方の使用状況が同じ請求書に表示されます。
また、Blaze プランにアップグレードすると、Google Cloud の世界クラスの Infrastructure as a Service と API を、標準の Google Cloud 料金で Firebase プロジェクト内で直接使用できます。Google Cloud から BigQuery にデータを直接エクスポートして分析することもできます。詳しくは、BigQuery と Firebase をリンクするをご覧ください。
Google Cloud を Firebase とともに使用すると、セキュリティの強化、レイテンシの改善、時間短縮の面で(同じ場所に配置されていない他のクラウド サービスと比較して)多くの利点があります。詳しくは、Google Cloud サイトをご覧ください。
Google Cloud プロジェクトに firebase:enabled
というラベルがあるのはなぜですか?
Google Cloud コンソールのプロジェクトの [ラベル] ページに、firebase:enabled
のラベル(具体的には、Key
が firebase
、Value
が enabled
のラベル)が表示されることがあります。
プロジェクトは Firebase プロジェクトであるため、Firebase はこのラベルを自動的に追加します。つまり、プロジェクトで Firebase 固有の構成とサービスが有効になっています。詳しくは、Firebase プロジェクトと Google Cloud の関係をご覧ください。
このラベルは変更または削除しないことを強くおすすめいたします。このラベルは Firebase と Google Cloud で Firebase プロジェクトをリストするために使用されます(たとえば、REST API projects.list
エンドポイントの使用または Firebase コンソール内のメニュー)。
このラベルをプロジェクト ラベルのリストに手動で追加しても、Google Cloud プロジェクトで Firebase 固有の構成とサービスは有効にならないことに注意してください。これらを有効にするには、Firebase コンソールを使用して Firebase を追加する必要があります(高度なユースケースの場合は、Firebase Management REST API または Firebase CLI を使用します)。
Firebase プロジェクトが Firebase プロジェクトのリストに表示されないのはなぜですか?
次の場所に Firebase プロジェクトが表示されない場合は、このよくある質問のトラブルシューティングをお試しください。
- Firebase コンソールに表示されているプロジェクトのリスト
- REST API の
projects.list
エンドポイントを呼び出して返されたレスポンス - Firebase CLI コマンド
firebase projects:list
を実行して返されたレスポンス
以下の解決方法をお試しください。
- まず、プロジェクトの URL に直接アクセスして、プロジェクトへのアクセスを試します。次の形式を使用します。
https://console.firebase.google.com/project/PROJECT_ID/overview
- プロジェクトにアクセスできない場合、または権限エラーが表示される場合は、次の点を確認してください。
- プロジェクトにアクセスできる Google アカウントと同じアカウントで Firebase にログインしていることを確認してください。Firebase コンソールのログインとログアウトは、コンソールの右上にあるアカウント アバターで行います。
- Google Cloud コンソールでプロジェクトを表示できるかどうかを確認します。
- Google Cloud コンソールのプロジェクトの [ラベル] ページで、プロジェクトに
firebase:enabled
というラベルが付いていることを確認します。Firebase と Google Cloud は、このラベルを使用して Firebase プロジェクトをリストします。このラベルが表示されていないが、プロジェクトで Firebase Management API が有効になっている場合は、ラベル(具体的には、Key
がfirebase
、Value
がenabled
のラベル)を手動で追加します。 - 基本的な IAM ロール(オーナー、編集者、閲覧者)のいずれか、または Firebase 関連の権限を含むロール(たとえば、Firebase の事前定義ロール)が割り当てられていることを確認します。ロールは、Google Cloud コンソールの [IAM] ページIAMで確認できます。
- プロジェクトが Google Cloud 組織に属している場合、Firebase コンソールにプロジェクトを表示するには追加の権限が必要です。ブラウザのロールなど、プロジェクトを表示するのに適したロールを付与するよう Google Cloud 組織の管理者に依頼してください。
上記のトラブルシューティングの手順のいずれを使用しても Firebase プロジェクトのリストでプロジェクトを確認できない場合は、Firebase サポートにお問い合わせください。
1 つのアカウントでいくつのプロジェクトを保有できますか?
- Spark お支払いプラン - プロジェクト割り当ての上限によって少ない数しか保有できません(通常は約 5~10)。
- Blaze お支払いプラン - Cloud Billing アカウントが良好な状態である限り、Cloud Billing アカウントあたりのプロジェクト割り当ての数は大幅に増加します。
多くのデベロッパーにとってプロジェクト割り当ての上限が問題になることはほとんどありませんが、必要に応じてプロジェクト割り当ての増加をリクエストできます。
プロジェクトが完全に削除されるまで 30 日かかります。完全に削除されるまでは割り当てにカウントされます。
1 つの Firebase プロジェクトに含めることができる Firebase アプリの数はどれくらいですか?
Firebase プロジェクトは、Apple、Android、ウェブでの Firebase アプリのコンテナです。Firebase プロジェクト内の Firebase アプリの合計数は 30 個までに制限されています。
この数を超えると、パフォーマンス(特に Google Analytics のパフォーマンス)が低下し、最終的にアプリの数が増え、一部のプロダクトの機能が動作しなくなります。また、Google ログインを認証プロバイダとして使用すると、プロジェクト内のアプリごとに基盤となる OAuth 2.0 クライアント ID が作成されます。1 つのプロジェクト内で作成できるクライアント ID の数には上限があり、30 個程度です。
エンドユーザーから見て、1 つの Firebase プロジェクト内のすべての Firebase アプリが、同じアプリケーションのプラットフォーム別のバリアントとなるようにしてください。たとえば、ホワイトラベル アプリケーションを開発する場合、個別にラベル付けしたアプリごとに固有の Firebase プロジェクトを用意すべきですが、そのラベルの Apple バージョンと Android バージョンを同じプロジェクトに含めることができます。詳しくは、Firebase プロジェクトの設定に関する一般的なベスト プラクティスをご覧ください。
まれなケースとして、プロジェクトで 30 個を超えるアプリが必要になる場合は、アプリの上限の引き上げをリクエストできます。このリクエストを行うには、プロジェクトが Blaze お支払いプランの適用対象である必要があります。Google Cloud コンソールにアクセスしてリクエストし、評価を受けてください。割り当ての管理の詳細については、Google Cloud のドキュメントをご覧ください。
プロジェクトに「本番環境」のタグを付けるとどうなりますか?
Firebase コンソールでは、Firebase プロジェクトに対して [本番環境] または [指定なし](非本番環境)のいずれかの環境の種類のタグを付けることができます。
プロジェクトに環境の種類のタグを付けても、Firebase プロジェクトの動作や機能には影響しません。ただし、タグ付けを行うことで、アプリのライフサイクルに合わせて Firebase のさまざまなプロジェクトを管理するのに役立ちます。
プロジェクトに本番環境のタグを設定すると、Firebase コンソールでプロジェクトに明るい色の Prod タグが追加され、このプロジェクトを変更すると本番環境用アプリに影響を及ぼす可能性があることが示されます。将来的には、本番環境としてタグ付けされた Firebase プロジェクトに関して、より多くの機能と安全保護対策が追加される可能性があります。
Firebase プロジェクトの環境の種類を変更するには、settings [プロジェクトの設定] > [全般] の順に移動し、プロジェクト カードの [環境] で edit をクリックして環境の種類を変更します。
Firebase アプリのアプリ ID はどこで確認できますか?
Firebase コンソールで、[settingsプロジェクトの設定] に移動します。[アプリ] カードまで下にスクロールし、目的の Firebase アプリをクリックして、「アプリ ID」などのアプリの情報を確認します。
アプリ ID の値の例をいくつか示します。
-
Firebase iOS アプリ:
1:1234567890:ios:321abc456def7890
-
Firebase Android アプリ:
1:1234567890:android:321abc456def7890
-
Firebase ウェブアプリ:
1:1234567890:web:321abc456def7890
Google Play / AdMob / Google Ads / BigQuery を Firebase プロジェクトまたはアプリにリンクする際の前提条件は何ですか?
- Google Play アカウントをリンクするには、次の条件が必要です。
- Firebase のロールとしてオーナーまたは Firebase 管理者のいずれかのロールが割り当てられていること。
- Google Play のアクセスレベルとしてアカウント所有者または管理者が割り当てられていること。
- Firebase のロールとしてオーナーまたは Firebase 管理者のいずれかのロールが割り当てられていること。
- AdMob アプリをリンクするには、Firebase プロジェクト オーナーと AdMob 管理者の両方の権限を得る必要があります。
- AdWords アカウントをリンクするには、Firebase プロジェクト オーナーと AdWords 管理者の両方の権限を得る必要があります。
- BigQuery プロジェクトをリンクするには、Firebase プロジェクトのオーナーの権限を得る必要があります。
アプリにどのようなオープンソース通知を含めるべきですか?
Apple プラットフォームの場合、関連エントリを含む NOTICES ファイルが Firebase Pod に含まれています。Firebase Android SDK には、ライセンス情報を表示するためのヘルパー Activity
が含まれています。
Firebase プロジェクトに対する権限とアクセス
オーナーロールなど、プロジェクト メンバーにロールを割り当てるには、どうすればよいですか?
各プロジェクト メンバーに割り当てるロールを管理するには、Firebase プロジェクトのオーナーである(または resourcemanager.projects.setIamPolicy
権限が含まれるロールが割り当てられている)必要があります。
ロールの割り当てと管理は次の場所で行うことができます。
- Firebase コンソールでは、簡単な方法でプロジェクト メンバーにロールを割り当てることができます。これは、settings > [プロジェクト設定] を選択し、[ユーザーと権限] タブで行います。Firebase コンソールでは、基本ロール(オーナー、編集者、閲覧者)、Firebase 管理者 / 閲覧者のロール、いずれかの Firebase プロダクト カテゴリの事前定義ロールを割り当てることができます。
- Google Cloud コンソールの IAM ページには、プロジェクト メンバーにロールを割り当てるための幅広いツールセットが用意されています。Cloud コンソールでは、カスタムロールの作成と管理を行うことができます。また、サービス アカウントにプロジェクトへのアクセス権を付与することもできます。
Google Cloud コンソールでは、プロジェクト メンバーはプリンシパルと呼ばれます。
プロジェクトのオーナーがオーナーのタスクを実行できなくなり(従業員が退職した場合など)、プロジェクトが Google Cloud 組織を通じて管理されていない場合(次の段落を参照)、Firebase プロジェクトへのアクセス権をリクエストする方法について、Firebase サポートにお問い合わせください。
Firebase プロジェクトが Google Cloud 組織に属している場合は、オーナーが存在しない可能性があります。Firebase プロジェクトのオーナーが見つからない場合は、Google Cloud 組織の管理者に問い合わせて、プロジェクトのオーナーの割り当てを依頼してください。
Firebase プロジェクトのオーナーを確認するにはどうすればよいですか?
プロジェクト メンバーとそのロールは次の場所で確認できます。
- Firebase コンソールでプロジェクトにアクセスできる場合は、Firebase コンソールの [ユーザーと権限] ページで、オーナーを含むプロジェクト メンバーのリストを確認できます。
- Firebase コンソールでプロジェクトにアクセスできない場合は、Google Cloud コンソールでそのプロジェクトにアクセスできるかどうかを確認します。オーナーを含むプロジェクト メンバーのリストは、Google Cloud コンソールの [IAM] ページで確認できます。
プロジェクトのオーナーがオーナーのタスクを実行できなくなり(従業員が退職した場合など)、プロジェクトが Google Cloud 組織を通じて管理されていない場合(次の段落を参照)、一時的なオーナーを割り当てるには、Firebase サポートにお問い合わせください。
Firebase プロジェクトが Google Cloud 組織に属している場合は、オーナーが存在しない可能性があります。代わりに、Google Cloud 組織の管理者は、オーナーが実行できる多くのタスクを実行できます。ただし、いくつかのオーナー固有のタスク(ロールの割り当てや Google Analytics のプロパティの管理など)を実行するには、管理者が実際のオーナーロールを自身に割り当てる必要があります。Firebase プロジェクトのオーナーが見つからない場合は、Google Cloud 組織の管理者に問い合わせて、プロジェクトのオーナーの割り当てを依頼してください。
プロジェクト メンバーにオーナーロールを割り当てる理由とタイミング
Firebase プロジェクトを適切に管理するには、プロジェクトにオーナーが必要です。プロジェクトのオーナーとは、ロールの割り当てや Google Analyticsのプロパティの管理といった重要な管理アクションを実行できるユーザーのことです。Firebase サポートで対応できるのは、指定されたプロジェクト オーナーからの管理リクエストに限られます。
Firebase プロジェクトのオーナーを設定したら、その割り当てを最新の状態に保つことが重要です。
Firebase プロジェクトが Google Cloud 組織に属している場合、Google Cloud 組織の管理者は、オーナーが実行できる多くのタスクを実行できます。ただし、いくつかのオーナー固有のタスク(ロールの割り当てや Google Analytics のプロパティの管理など)を実行するには、管理者が実際のオーナーロールを自身に割り当てる必要があります。
Firebase プロジェクトを所有していないはずですが、プロジェクトに関するメールが届きました。このプロジェクトにアクセスするにはどうすればよいですか?
メールには、Firebase プロジェクトを開くためのリンクが記載されています。メール内のリンクをクリックすると、Firebase コンソールでプロジェクトが開きます。
リンクでプロジェクトを開くことができない場合は、プロジェクトに関するメールを受信した Google アカウントを使用して Firebase にログインしていることをご確認ください。Firebase コンソールのログインとログアウトは、コンソールの右上にあるアカウント アバターで行います。
Google Cloud 組織の管理者には、組織内の Firebase プロジェクトの変更に関する通知が届くことがあります。ただし、Firebase プロジェクトを開くための十分な権限がない可能性があります。このような場合、最も簡単な解決策は、実際のオーナーロールを自分自身に割り当てて、プロジェクトを開き、必要なアクションを行うことです。詳しくは、オーナーロールを割り当てる理由と条件をご覧ください。
プラットフォームとフレームワーク
プラットフォーム固有のトラブルシューティングのページやよくある質問のページにアクセスすると、役立つヒントや、その他のよくある質問への回答をご覧いただけます。
Firebase コンソール
Firebase コンソールへのアクセスに使用できるブラウザは何ですか?
Firebase コンソールは、Chrome、Firefox、Safari、Edge などの代表的なパソコンのブラウザの新しいバージョンでアクセスできます。現時点では、モバイル ブラウザの一部はサポートされていません。
Firebase コンソールを読み込めますが、Firebase プロジェクトが見つからないか、アクセスできません。なぜですか?
次のいずれかの問題が発生している場合は、このよくある質問のトラブルシューティングをお試しください。
- Firebase コンソールに、プロジェクトが存在しないか、プロジェクトへのアクセス権がないことを示すエラーページが返される。
- コンソールの検索フィールドにプロジェクト ID またはプロジェクト名を入力しても、Firebase コンソールにプロジェクトが表示されない。
以下の解決方法をお試しください。
- まず、プロジェクトの URL に直接アクセスして、プロジェクトへのアクセスを試します。次の形式を使用します。
https://console.firebase.google.com/project/PROJECT-ID/overview
- それでもプロジェクトにアクセスできない場合、または権限エラーが表示される場合は、次の点を確認してください。
- プロジェクトにアクセスできる Google アカウントと同じアカウントで Firebase にログインしていることを確認してください。Firebase コンソールのログインとログアウトは、コンソールの右上にあるアカウント アバターで行います。
- プロジェクトで Firebase Management API が有効になっていることを確認します。
- 基本的な IAM ロール(オーナー、編集者、閲覧者)のいずれか、または Firebase 関連の権限を含むロール(たとえば、Firebase の事前定義ロール)が割り当てられていることを確認します。ロールは、Google Cloud コンソールの [IAM] ページIAMで確認できます。
- プロジェクトが Google Cloud 組織に属している場合、Firebase コンソールにプロジェクトを表示するには追加の権限が必要です。ブラウザのロールなど、プロジェクトを表示するのに適したロールを付与するよう Google Cloud 組織の管理者に依頼してください。
上記のトラブルシューティングの手順を行ってもプロジェクトの検出やアクセスができない場合は、Firebase サポートにお問い合わせください。
Firebase コンソールが読み込まれません。なぜですか?
次のいずれかの問題が発生している場合は、このよくある質問のトラブルシューティングをお試しください。
- Firebase コンソールのページ読み込みが完了しない。
- ページ内のデータが想定どおりに読み込まれない。
- Firebase コンソールを読み込むと、ブラウザのエラー メッセージが表示される。
以下の解決方法をお試しください。
- サービスの中断が発生している可能性があるため、Firebase Status Dashboard の [Console] 行で確認します。
- 対応ブラウザを使用していることを確認します。
- シークレット ウィンドウまたはプライベート ウィンドウで Firebase コンソールを読み込んでみます。
- ブラウザの拡張機能をすべて無効にします。
- 広告ブロッカー、ウイルス対策ソフトウェア、プロキシ、ファイアウォール、その他のソフトウェアによってネットワーク接続がブロックされていないことを確認します。
- 別のネットワークまたはデバイスを使用して Firebase コンソールを読み込んでみます。
- Chrome を使用している場合は、デベロッパー ツール コンソールでエラーが発生していないか確認します。
上記のトラブルシューティングの手順のいずれでも問題が解決しない場合は、Firebase サポートにお問い合わせください。
Firebase コンソールの言語はどのように決定されますか?
Firebase コンソールの言語設定は、Google アカウント設定で選択した言語に基づきます。
言語設定を変更するには、言語を変更をご覧ください。
Firebase コンソールは次の言語をサポートしています。
- 英語
- ポルトガル語(ブラジル)
- フランス語
- ドイツ語
- インドネシア語
- 日本語
- 韓国語
- ロシア語
- 中国語(簡体)
- スペイン語
- 中国語(繁体)
Firebase コンソールはどのようなロールと権限をサポートしていますか?
Firebase コンソールと Google Cloud コンソールでは、基本的なロールと権限は同じです。ロールと権限の詳細については、Firebase IAM のドキュメントをご覧ください。
Firebase は、オーナー、編集者、閲覧者という基礎的な(基本)ロールをサポートしています。
- プロジェクトのオーナーは、プロジェクトに他のメンバーを追加したり、統合(BigQuery や Slack などのサービスにリンクしているプロジェクト)を設定したりできます。また、プロジェクトに対する完全な編集権限が付与されます。
- プロジェクトの編集者は、プロジェクトに対する完全な編集権限を持っています。
- プロジェクトの閲覧者は、プロジェクトに対する読み取りアクセス権のみを持っています。Firebase コンソールでは現在、プロジェクト閲覧者に対して編集 UI コントロールは非表示 / 無効になっていません。ただし閲覧者ロールが割り当てられているプロジェクト メンバーの場合、これらの操作は失敗します。
Firebase は以下もサポートします。
- Firebase の事前定義ロール - オーナー、編集者、閲覧者という基本のロールよりも詳細なアクセス制御を可能にする、キュレートされた Firebase 固有のロール。
- カスタムロール - 組織の特定の要件を満たす一連の権限を調整するために作成した、完全にカスタマイズされた IAM のロール。
Firebase Local Emulator Suite
Emulator Suite ログで「Multiple projectIds are not recommended in single project mode」というエラーが表示されるのはなぜですか?
このメッセージは、異なるプロジェクト ID を使用した特定のプロダクト エミュレータを実行している可能性があることを Emulator Suite が検出したことを示します。これは、構成ミスを示している場合があり、エミュレータが相互に通信しようとした場合や、コードからエミュレータを操作しようとしたことが問題の原因となる可能性があります。プロジェクト ID が一致しない場合、エミュレータに保存済みのデータが projectID をキーとしており、プロジェクト ID の一致に相互運用性が依存しているため、データが不足しているように見えることがよくあります。
これはデベロッパーがよく直面する混乱の原因であるため、デフォルトでは、firebase.json
構成ファイルで特に指定しない限り、Local Emulator Suite は単一のプロジェクト ID での実行のみを許可します。エミュレータが複数のプロジェクト ID を検出すると、警告をログに記録し、致命的なエラーをスローする可能性があります。
プロジェクト ID の宣言が不一致かどうかは、次の場所で確認できます。
-
コマンドラインで設定されたデフォルトのプロジェクト。 デフォルトでは、プロジェクト ID は
firebase init
またはfirebase use
で選択されたプロジェクトから起動時に取得されます。プロジェクトのリストを表示して選択されているプロジェクトを確認するには、firebase projects:list
を使用します。 -
単体テスト。プロジェクト ID は、多くの場合、ルール単体テスト ライブラリのメソッド
initializeTestEnvironment
またはinitializeTestApp
の呼び出しで指定されます。 他のテストコードはinitializeApp(config)
で初期化できます。 -
コマンドラインの
--project
フラグ。Firebase CLI の--project
フラグを渡すと、デフォルトのプロジェクトがオーバーライドされます。このフラグの値が単体テストとアプリ初期化におけるプロジェクト ID と一致していることを確認する必要があります。
プラットフォーム固有の確認事項:
ウェブ | JavaScript firebaseConfig オブジェクトの projectId プロパティ。initializeApp で使用されます。
|
Android | google-services.json 構成ファイル内の project_id プロパティ。
|
Apple プラットフォーム | GoogleService-Info.plist 構成ファイルの PROJECT_ID プロパティ。
|
シングル プロジェクト モードを無効にするには、singleProjectMode
キーで firebase.json
を更新します。
{ "firestore": { ... }, "functions": { ... }, "hosting": { ... }, "emulators": { "singleProjectMode": false, "auth": { "port": 9099 }, "functions": { "port": 5001 }, ... } }
料金
プロダクト固有の料金に関するよくある質問については、このページのプロダクトのセクションまたはプロダクト専用のドキュメントをご覧ください。
どのプロダクトが有料で、どのプロダクトが無料でしょうか?
Firebase の有料インフラストラクチャ プロダクトには、Realtime Database、Cloud Storage for Firebase、Cloud Functions、Hosting、Test Lab、電話認証があります。これらのすべての機能では、一部を無料枠でご利用いただけます。
Firebase は、Analytics、Cloud Messaging、Notifications Composer、Remote Config、App Indexing、Dynamic Links、Crash Reporting などの無料プロダクトも数多く取り揃えています。これらのプロダクトの使用は、無料の Spark プランを含むすべてのプランで、プロダクトのトラフィック制御ポリシー(割り当て、公平なアクセス、その他のサービス保護など)のみの対象となります。さらに、電話認証以外のすべての Authentication 機能は無料です。
Firebase では有料プロダクトに利用できる無料トライアル クレジットが提供されますか?
Firebase の有料サービスは、Google Cloud の無料トライアルでご利用いただけます。Google Cloud と Firebase を初めて使用する場合、$300 分の無料 Cloud Billing クレジットを含む 90 日間の無料トライアル期間を利用して、Google Cloud と Firebase のプロダクトとサービスを操作および評価できます。
Google Cloud の無料トライアル期間中は、無料トライアル用の Cloud Billing アカウントが提供されます。この請求先アカウントを使用する Firebase プロジェクトには、無料トライアル期間中に Blaze お支払いプランが適用されます。
この無料トライアル用の Cloud Billing アカウントを設定しても、Google により請求されることはありませんのでご安心ください。無料トライアル用 Cloud Billing アカウントを有料アカウントにアップグレードして課金を明示的に有効にしない限り、請求されることはありません。有料アカウントへのアップグレードは、トライアル中いつでも可能です。アップグレード後も、残りのクレジットは(90 日の期間以内であれば)引き続き使用できます。
無料トライアルの有効期限終了後に引き続き Firebase プロジェクトをご利用いただくには、プロジェクトを Spark お支払いプランにダウングレードするか、Firebase コンソールで Blaze お支払いプランを設定する必要があります。
詳しくは、Google Cloud の無料試用をご覧ください。
最適なお支払いプランを選ぶにはどうすればよいですか?
Spark のお支払いプラン
Spark プランは、アプリを無料で開発するのにうってつけです。すべての無料の Firebase 機能(Analytics、Notifications Composer、Crashlytics など)を利用できます。また、有料のインフラストラクチャ機能にも無料枠が用意されている場合があります。ただし、Spark プランの各月のリソース制限を超過した場合、その月の残りの期間はアプリにアクセスできなくなります。また、Spark プラン使用時には Google Cloud の機能は利用できません。
Blaze のお支払いプラン
Blaze プランは本番環境アプリ向けに構成されています。Blaze プランでは、有料の Google Cloud 機能でアプリを拡張することもできます。消費するリソースに対してのみ支払いが発生するため、需要に応じたスケーリングが可能です。Blaze プランの料金については、業界最先端のクラウド プロバイダに対抗できる料金設定を実現すべく努力を続けております。
アップグレード、ダウングレード、キャンセルはいつでもできますか?
はい、アップグレード、ダウングレード、キャンセルはいつでもできます。ただし、ダウングレードやキャンセルに応じた払い戻しを受け取ることはできませんのでご注意ください。つまり、請求対象期間の途中でダウングレードまたはキャンセルを行った場合、その月の終わりまでの料金を支払う必要があります。
Blaze プランの無料使用と Spark プランの無料使用には、どのような違いがありますか?
Blaze プランの無料使用は日単位で計算されます。Cloud Functions、電話認証、Test Lab 用の Spark プランとは、使用量上限も異なります。
Cloud Functions の場合、Blaze プランの無料使用はプロジェクト単位ではなく Cloud Billing アカウント単位で計算され、次の上限があります。
- 200 万回呼び出し/月
- 40 万 GB 秒/月
- 20 万 CPU 秒/月
- 5 GB のネットワーク下り(外向き)/月
電話認証の場合、Blaze プランの無料使用は月単位で計算されます。
Test Lab の場合、Blaze プランの無料使用には次の上限があります。
- 実機の時間は 1 日あたり 30 分
- 仮想デバイスの時間は 1 日あたり 60 分
Spark から Blaze にプランを変更すると、無料の使用量割り当てがリセットされますか?
Spark プランの無料の使用量は Blaze プランに組み込まれます。Blaze プランに移行しても、無料の使用量はリセットされません。
Firebase プロジェクトの請求先アカウントを Google Cloud コンソールで追加または削除すると、そのプロジェクトはどうなりますか?
Google Cloud コンソールでプロジェクトに Cloud Billing アカウントが追加された場合、そのプロジェクトが現在 Spark プランにあれば、同じプロジェクトが Firebase Blaze プランに自動的にアップグレードされます。
一方、既存の有効な Cloud Billing アカウントが Google Cloud コンソールでプロジェクトから削除された場合、そのプロジェクトは Firebase Spark プランにダウングレードされます。
使用量と料金を管理するにはどうすればよいですか?
Firebase コンソールの次のダッシュボードで、プロジェクト リソースの使用状況を追跡できます。
Blaze プランで使用量の上限を設定できますか?
いいえ、現状では Blaze プランで使用量の上限を設定することはできません。Blaze プランで使用量の上限をサポートするオプションを評価中です。
Blaze ユーザーはプロジェクトまたはアカウントの予算を定義し、支出がこうした上限に近づいた場合にアラートを受け取ることができます。予算アラートの設定方法をご確認ください。
どのようなサポートを受けられますか?
無料プランで利用中のものを含むすべての Firebase アプリについて、米国太平洋時間の営業時間内に、Firebase のスタッフのメールによるサポートを受けられます。すべてのアカウントで、請求関連の問題、アカウント関連の問題、技術的な質問(トラブルシューティング)インシデント レポートについては無制限のサポートを受けられます。
オープンソース、非営利団体、教育向けの割引はありますか?
Spark プランは、非営利団体、学校、オープンソースのプロジェクトなど、あらゆる個人や組織がご利用いただけるプランです。これらのプランにはすでに十分な特典が考慮されているため、オープンソース、非営利団体、教育プロジェクトに対する特別な割引やプランは提供しておりません。
企業向けの契約、料金設定、サポート、または専用インフラストラクチャによるホスティングを提供していますか?
Blaze プランはあらゆる規模の企業に適しています。SLA は、クラウド インフラストラクチャの業界標準を十分に満たしています。ただし、現時点では、企業向けの契約、料金設定、サポート、Realtime Database などのサービス向けの専用インフラストラクチャによるホスティング(オンプレミスのインストール)は提供していません。現在こうした機能の一部を追加すべく努力を重ねております。
アドホックな料金設定を提供していますか?1、2 個の機能についてのみ従量課金制を使用したいのですが。
Blaze プランでアドホックな料金設定を提供しています。このプランでは、使用する機能に対してのみ支払います。
有料の Firebase プランは Ads とどのように連携していますか?有料プランに無料の広告クレジットが組み込まれているのですか?
Firebase の料金プランは Ads から独立しているため、無料の広告クレジットはありません。Firebase のデベロッパーであるお客様は、Ads のアカウントを Firebase に「リンク」させ、コンバージョン トラッキングのサポートを行えます。
すべての広告キャンペーンは Ads で直接管理され、Ads の請求は Ads コンソールで管理されます。
Flame お支払いプランは現在どうなっていますか?
2020 年 1 月、Flame お支払いプラン(月額 $25 で追加割り当て)が新規登録オプションから削除されました。既存プランのユーザーには、プロジェクトを Flame プランから移行するための猶予期間が設定されていました。2022 年 2 月、Flame お支払いプランのプロジェクトは Spark お支払いプランにダウングレードされました。
また、次の点に注意してください。
- Spark プランと Blaze プランの既存のプロジェクトおよび新規プロジェクトでは、Flame プランへの切り替えや登録はできません。
- Flame プランの既存のプロジェクトを別のお支払いプランに移行した場合、Flame プランに戻すことはできません。
- Spark プランにダウングレードされたプロジェクトは、Blaze プランにアップグレードすることで、追加の有料サービスを再開できます。
- Flame プランへの参照がドキュメントから削除されました。
Flame プランの終了について他にご質問がある場合はその他のよくある質問をご覧ください。
Firebase の他のお支払いプランについては、Firebase の料金ページをご覧ください。既存のプロジェクトを別のお支払いプランに移行する場合は、プロジェクトの Firebase コンソールで移行できます。
Flame プランの終了に関するその他のよくある質問
Firebase の固定料金で使用しているプロジェクト / プロセス / ビジネスモデルがあります。どうすればよいですか?
Blaze お支払いプランに登録し、予算アラートを設定してください。
Flame プランの新規プロジェクトを作成するための特別なアクセス権限が提供されますか?
いいえ。Firebase では、プロジェクトを Flame プランに切り替えるかまたは登録するための特別なアクセス権限を提供していません。
Flame プランのプロジェクトを別のお支払いプランに変更しました。元に戻すにはどうすればよいですか?
Flame プランに切り替えることはできなくなりました。Flame プランで提供されるサービスにアクセスするには、Blaze お支払いプランご使用中であることをご確認のうえ、プロジェクトに予算アラートを設定することをご検討ください。
Flame プランの廃止後、プロジェクトが自動的に別のお支払いプランに切り替えられました。どうすればよいですか?
プロジェクトで Spark プランの上限を超える割り当てが必要な場合は、プロジェクトを Blaze お支払いプランにアップグレードする必要があります。
Flame プランが廃止されるのはなぜですか?
長年にわたって Flame プランの利用が減少し、Flame プランを使用するプロジェクトのほとんどでは、その価値が最大限に利用されていないことが判明しました。このお支払いプランを維持しても費用効果がなく、リソースを他の Firebase イニシアチブへ投じる方が、すべてのユーザーにとってより良いサービスを提供できると考えています。
プライバシー
Firebase のプライバシーとセキュリティに関する情報はどこにありますか?
Firebase のプライバシーとセキュリティのページをご覧ください。
Firebase SDK は、アナリティクスの外部で使用状況または診断情報をロギングしますか?
はい。これは現在 iOS 専用ですが、今後変更される可能性があります。Firebase Apple プラットフォーム SDK には、デフォルトで FirebaseCoreDiagnostics
フレームワークが含まれています。このフレームワークは、SDK の使用状況と診断情報を収集するために Firebase によって使用され、今後のプロダクト強化の優先順位付けに役立てられます。FirebaseCoreDiagnostics
は省略可能です。Firebase 診断ログの送信をオプトアウトするには、アプリからライブラリのリンクを解除します。GitHub で、ロギングされた値を含む完全なソースを参照できます。
A/B Testing
A/B Testing: 作成して実行できるテストの数はどれくらいですか?
プロジェクトあたり最大 300 個のテストを使用できます。その内訳は、実行中のテストが最大 24 個まで、残りはドラフトまたは完了済みのテストになります。
A/B Testing: Google アナリティクスへのプロジェクトのリンクを解除した後でリンクを再設定すると、テストが表示されないのはなぜですか?
別の Google Analytics のプロパティにリンクすると、以前に作成したテストにアクセスできなくなります。以前のテストへのアクセスを再度取得するには、テストの作成時にリンクされていた Google Analytics のプロパティにプロジェクトをリンクし直します。
A/B Testing: Remote Config テストの作成時に「プロジェクトが Google アナリティクスにリンクされていません」というメッセージが表示されるのはなぜですか?
すでに Firebase と Google アナリティクスをリンクしているにもかかわらず、Google アナリティクスがリンクされていないというメッセージが表示される場合は、プロジェクト内にすべてのアプリのアナリティクス ストリームが存在することを確認してください。現在、A/B Testing を使用するには、プロジェクト内のすべてのアプリが Google アナリティクス ストリームに接続されている必要があります。
アクティブなストリームの一覧は、settings[プロジェクト設定]chevron_right [統合]chevron_right [Google アナリティクス]chevron_right [管理] からアクセス可能な、Firebase コンソール内の Google アナリティクス統合の詳細ページにあります。
Google アナリティクス ストリームがまだ作成されていないアプリに対して Google アナリティクス ストリームを作成すると、問題が解決されます。見つからないアプリに対してストリームを作成する場合、いくつかの方法があります。
-
Google アナリティクス ストリームが関連付けられていないアプリが 1 つまたは 2 つのみの場合は、次のいずれかの方法で Google アナリティクス ストリームを追加できます。
- アクティブなストリームがないアプリをすべて削除し、Firebase コンソールに追加し直します。
- Google アナリティクス コンソールで [管理者] を選択し、[データ ストリーム] をクリックしてから、[ストリームを追加] をクリックし、見つからないアプリの詳細を追加して、[アプリを登録] をクリックします。
-
見つからないアプリ ストリームが多数ある場合に、これらのアプリ ストリームを最短の時間で効率的に作成するには、Google アナリティクス プロパティのリンクを解除して再リンクします。
- settings [プロジェクト設定] で [統合] を選択します。
- [Google アナリティクス] カードで [管理] をクリックして、Firebase と Google アナリティクスの設定にアクセスします。
- Google アナリティクスの [プロパティ ID] と [リンクされた Google アナリティクス アカウント] をメモします。
- more_vert [その他] をクリックして、[このプロジェクトからアナリティクスのリンクを解除] を選択します。
-
表示された警告を確認してください(問題はありません。次のステップで同じプロパティを再リンクします)。次に、[Google アナリティクスとのリンクを解除] をクリックしてください。
リンク解除が完了すると、[統合] ページにリダイレクトされます。 - [Google アナリティクス] カードで [有効にする] をクリックし、再リンク処理を開始します。
- [アカウントを選択] リストからアナリティクス アカウントを選択します。
-
[このアカウントに新しいプロパティを自動的に作成します] の横にある edit [編集] をクリックし、表示された [アナリティクス プロパティ] リストから自分のプロパティ ID を選択します。
プロジェクト内のすべてのアプリの一覧が表示されます。各アプリの既存のストリーム マッピングが一覧表示され、ストリームのないアプリに対してストリーム マッピングが作成されます。 - [Google アナリティクスを有効にする] をクリックして、プロパティを再リンクします。
- [Finish] をクリックします。
これらの手順を行った後も、Remote Config を使用して A/B テストを作成しているときにエラーが表示される場合は、Firebase サポートにお問い合わせください。
AdMob
AdMob: 自分の Windows アプリを Firebase にリンクできますか?
いいえ。現在のところ、Windows アプリはサポートされていません。
AdMob: Firebase コンソールから AdMob に自分のアプリをリンクできないのはなぜですか?
AdMob アプリは AdMob コンソールを介して Firebase アプリにリンクできます。詳しくはこちらをご覧ください。
AdMob: Firebase アプリを AdMob アプリにリンクするには、どのような権限やアクセス権が必要ですか?
そのようなリンクを行うには、次のアクセス権が必要です。
- AdMob: AdMob 管理者である必要があります。
- Firebase:
firebase.links.create
権限が必要です。この権限は、オーナーロールと Firebase 管理者ロールに含まれています。 - Google Analytics: Firebase プロジェクトに関連付けられたプロパティの編集ロールまたはユーザー管理ロールが必要です。詳細
AdMob: 同じ AdMob アカウント内の複数のユーザーが AdMob アプリと Firebase アプリをリンクすることはできますか?
マルチユーザー AdMob アカウントの場合、最初の Firebase リンクを作成して Firebase の利用規約に同意したユーザーのみが、AdMob アプリと Firebase アプリの間に新しいリンクを作成できます。
AdMob: AdMob を使用するには、どの SDK を使用すればよいですか?
AdMob を使用するには、このよくある質問で説明されているように、常に Google Mobile Ads SDK を使用してください。必要に応じて、AdMob のユーザーに関する指標を収集する場合は、Google Analytics 用の Firebase SDK をアプリに含めます。
- iOS プロジェクトの場合:
AdMob iOS のドキュメントの手順に沿って、Google Mobile Ads SDK をインポートします。 - Android プロジェクトの場合:
Google Mobile Ads SDK の依存関係をbuild.gradle
ファイルに追加します。
implementation 'com.google.android.gms:play-services-ads:23.6.0'
- C++ プロジェクトと Unity プロジェクトについては、それぞれのドキュメントに記載された手順を行ってください。
アナリティクス
Analytics: Firebase プロダクトを使用する際に、その一環として Google アナリティクスが推奨されるのはなぜですか?
Google Analytics は、Firebase の機能と連携して詳細な分析情報を提供する、無料で無制限のアナリティクス ソリューションです。Crashlytics のイベントログ、FCM の通知の効果、Dynamic Links のディープリンクのパフォーマンス、Google Play のアプリ内購入データを表示できます。Remote Config、Remote Config のカスタマイズなどで高度なオーディエンス ターゲティングを実現します。
Google Analytics は、Firebase コンソール内でインテリジェンス レイヤとして機能します。高品質なアプリの開発、ユーザーベースの拡大、収益増加のための、行動につながる分析情報を提供します。
開始するには、ドキュメントをご覧ください。
Analytics: Analytics データを Firebase の他の機能と共有する方法は、どのように制御できますか?
デフォルトでは、Google Analytics データは他の Firebase の機能や Google の機能を拡張するために使用されます。Google Analytics データの共有方法は、プロジェクト設定でいつでも変更できます。 データ共有設定の詳細をご確認ください。
Analytics: アナリティクスのプロパティ設定を更新するにはどうすればよいですか?
Google アナリティクスのプロパティの [管理] ページで、次のようなプロパティ設定を更新できます。
- データ共有設定
- データ保持設定
- タイムゾーンと通貨の設定
プロパティ設定を更新する手順は次のとおりです。
- Firebase コンソールで settings[] > [プロジェクトの設定]に移動します。
- [統合] タブに移動して、Google アナリティクスのカードで [管理] または [リンクを表示] をクリックします。
- Google アナリティクス アカウントのリンクをクリックして、アカウントとプロパティの設定を開きます。
iOS アプリの Analytics: 広告の帰属表示と IDFA 収集の機能を使用せずに Analytics をインストールすることはできますか?
はい。詳しくは、データの収集と使用方法を構成するのページをご覧ください。
Analytics: 2021 年 10 月の更新での Google アナリティクス セクションの変更内容はどのようなものですか?
変更内容の概要については、Firebase ヘルプセンターの記事 Firebase 向け Google アナリティクスの Google アナリティクス 4 の新機能をご覧ください。
Analytics: Firebase と Google アナリティクスのリンクを解除した後、Firebase コンソールに Analytics データが表示されないのはなぜですか?
Analytics データは、Firebase プロジェクト内ではなく、Google アナリティクスのプロパティ内にあります。プロパティを削除またはリンク解除すると、Firebase は Analytics データにアクセスできなくなります。Firebase コンソールには空の [Analytics] ダッシュボードが表示されます。データは以前にリンクされたプロパティに残っているため、いつでもプロパティを Firebase に再リンクして、Firebase コンソールで Analytics データを確認できます。
まったく新しい Google アナリティクス アカウント(および新しい Google アナリティクス プロパティ)を Firebase プロジェクトにリンクすると、Firebase コンソールの [Analytics] ダッシュボードは空白になります。ただし、以前にリンクされたプロパティがまだ存在する場合は、既存のプロパティを古いプロパティから新しいプロパティに移動できます。
Analytics: Analytics プロパティとそのデータが削除された場合、元に戻す方法はありますか?
いいえ。プロパティが削除された場合、そのプロパティの削除の取り消しや、そのプロパティに以前に保存された Analytics データの取得は行えません。
Google アナリティクスのご利用を再開する場合は、新しいプロパティまたは既存のプロパティを Firebase プロジェクトにリンクしてください。このリンクは、Firebase コンソールか Google アナリティクスの UI で行えます。 詳しくは、Google アナリティクス プロパティを Firebase プロジェクトにリンクするをご覧ください。
Analytics: アナリティクス プロパティが削除された場合、新しい Google アナリティクス プロパティを Firebase プロジェクトにリンクして、Analytics の使用を再開できますか?
Google アナリティクスのご利用を再開する場合は、新しいプロパティまたは既存のプロパティを Firebase プロジェクトにリンクしてください。このリンクは、Firebase コンソールか Google アナリティクスの UI で行えます。 詳しくは、Google アナリティクス プロパティを Firebase プロジェクトにリンクするをご覧ください。
すべての Analytics データは(Firebase プロジェクトではなく)プロパティに格納されるため、以前に収集された Analytics データを取得することはできません。
Analytics: アナリティクス プロパティの削除によって、Firebase プロダクトまたは統合された Google プロダクトにはどのような影響がありますか?
一部の Firebase プロダクトは、Google アナリティクスとの統合を利用しています。アナリティクスのプロパティとそのデータが削除されると、次のサービスを使用しているときに以下のようになります。
- Crashlytics - クラッシュの影響を受けていないユーザー、パンくずリストのログ、ベロシティ アラートを確認できなくなります。
- Cloud Messaging と In-App Messaging - ターゲティング、キャンペーン指標、オーディエンス セグメンテーション、アナリティクス ラベルを使用できなくなります。
- Remote Config - ターゲットを絞った構成とカスタマイズを使用できなくなります。
- A/B Testing - テスト測定は Google アナリティクスによって提供されるため、A/B Testing を使用できなくなります。
- Dynamic Links - Google アナリティクスのデータを使用する機能が中断されます。
次の統合も影響を受けます。
- Analytics データを BigQuery にエクスポートできなくなります。
- Google Ads との連携または Google AdMob との連携を利用できなくなります。
Analytics: 条件を完全には満たしていないユーザーをどのように分類しますか?
こうしたユーザーに対しては、「ターゲット除外」を行うことで問題を再構築できます。たとえば、「何かを購入したユーザーには広告を表示しない」ものとして問題を再構築し、こうしたユーザーからなるユーザー層を生成します。
Analytics: Google アナリティクスのインターフェースで定義されているオーディエンスやイベントは、Firebase コンソールでも使用できますか?
オーディエンスとユーザー プロパティは同期されます。セグメンテーションやクローズド型目標到達プロセスなどの一部の機能では、Google アナリティクスのインターフェースを使用する必要があります。Firebase コンソールのディープリンクを通じて、Google アナリティクスのインターフェースに直接アクセスできます。
Firebase コンソールで行う変更作業はすべて Google アナリティクスでも実行でき、それらの変更内容は Firebase に反映されます。
Authentication
Firebase Authentication: 電話認証がサポートされている地域はどこですか?
Firebase Authentication は、電話番号での確認を世界中でサポートしていますが、すべてのネットワークが確実に確認メッセージを配信するわけではありません。以下のリージョンでは配信率が高く、電話認証が正しく機能すると考えられます。注記がある場合、一部の通信会社では、配信成功率が低いためにそのリージョンでご利用いただけません。
リージョン | コード |
---|---|
広告 | アンドラ |
AE | アラブ首長国連邦 |
AF | アフガニスタン |
AG | アンティグア バーブーダ |
AL | アルバニア |
AM | アルメニア |
AO | アンゴラ |
AR | アルゼンチン |
AS | 米領サモア |
AT | オーストリア |
AU | オーストラリア |
AW | アルバ |
AZ | アゼルバイジャン |
BA | ボスニア ヘルツェゴビナ |
BB | バルバドス |
BD | バングラデシュ |
BE | ベルギー |
BF | ブルキナファソ |
BG | ブルガリア |
BJ | ベナン |
BM | バミューダ |
BN | ブルネイ・ダルサラーム国 |
BO | ボリビア |
BR | ブラジル |
BS | バハマ |
BT | ブータン |
BW | ボツワナ |
BY | ベラルーシ |
BZ | ベリーズ |
CA | カナダ |
CD | コンゴ(キンシャサ) |
CF | 中央アフリカ共和国 |
CG | コンゴ(ブラザビル) |
CH | スイス |
CI | コートジボワール |
CK | クック諸島 |
CL | チリ |
CM | カメルーン |
CO | コロンビア |
CR | コスタリカ |
CV | カボベルデ |
CW | キュラソー |
CY | キプロス |
CZ | チェコ共和国 |
DE | ドイツ |
DJ | ジブチ |
DK | デンマーク |
DM | ドミニカ |
良い例 | ドミニカ共和国 |
DZ | アルジェリア |
EC | エクアドル |
EG | エジプト |
ES | スペイン |
ET | エチオピア |
FI | フィンランド |
FJ | フィジー |
FK | フォークランド諸島(マルビナス諸島) |
FM | ミクロネシア連邦 |
FO | フェロー諸島 |
FR | フランス |
GA | ガボン |
GB | 英国 |
GD | グレナダ |
GE | グルジア |
GF | フランス領ギニア |
GG | Guernsey |
GH | ガーナ |
GI | ジブラルタル |
GL | グリーンランド |
GM | ガンビア |
試合 | グアドループ |
GQ | 赤道ギニア |
GR | ギリシャ |
GT | グアテマラ |
GY | ガイアナ |
HK | 中華人民共和国香港特別行政区 |
HN | ホンジュラス |
HR | クロアチア |
HT | ハイチ |
HU | ハンガリー |
ID | インドネシア |
IE | アイルランド |
IL | イスラエル |
IM | マン島 |
IN | インド |
IQ | イラク |
IT | イタリア |
JE | ジャージー |
JM | ジャマイカ |
JO | ヨルダン |
JP | 日本 |
KE | ケニア |
KG | キルギス |
KH | カンボジア |
KM | コモロ |
KN | セントクリストファー ネービス |
KR | 韓国 |
KW | クウェート |
KY | ケイマン諸島 |
KZ | カザフスタン |
LA | ラオス人民民主共和国 |
LB | レバノン |
LC | セントルシア |
LI | リヒテンシュタイン |
LK | スリランカ |
LS | レソト |
LT | リトアニア |
LU | ルクセンブルグ |
LV | ラトビア |
LY | リビア |
MA | モロッコ |
MD | モルドバ |
ME | モンテネグロ |
MF | セントマーチン島(仏領) |
MG | マダガスカル |
MK | マケドニア共和国 |
MM | ミャンマー |
MN | モンゴル |
MO | 中華人民共和国マカオ特別行政区 |
MS | Montserrat |
MT | マルタ |
MU | モーリシャス |
MW | マラウイ |
MX | メキシコ |
MY | マレーシア |
MZ | モザンビーク |
NA | ナミビア |
NC | ニューカレドニア |
北東 | ニジェール |
NF | ノーフォーク島 |
NG | ナイジェリア |
NI | ニカラグア |
NL | オランダ |
いいえ | ノルウェー |
NP | ネパール |
NZ | ニュージーランド |
OM | Oman |
PA | パナマ |
PE | ペルー |
PG | パプアニューギニア |
PH | フィリピン |
PK | パキスタン |
PL | ポーランド |
PM | サンピエール ミクロン |
PR | プエルトリコ |
PS | パレスチナ占領地 |
PT | ポルトガル |
PY | パラグアイ |
QA | カタール |
RE | レユニオン |
RO | ルーマニア |
RS | セルビア |
RU | ロシア連邦 |
RW | ルワンダ |
SA | サウジアラビア |
SC | セイシェル |
SE | スウェーデン |
SG | シンガポール |
SH | セントヘレナ |
SI | スロベニア |
SK | スロバキア |
SL | シエラレオネ |
SN | セネガル |
SR | スリナム |
ST | サントメ プリンシペ |
SV | エルサルバドル |
SZ | スワジランド |
TC | タークス カイコス諸島 |
TG | トーゴ |
TH | タイ |
TL | 東ティモール |
TM | トルクメニスタン |
TO | トンガ |
TR | トルコ |
TT | トリニダード トバゴ |
TW | 台湾、中華民国 |
TZ | タンザニア連合共和国 |
UA | ウクライナ |
UG | ウガンダ |
US | アメリカ合衆国 |
UY | ウルグアイ |
UZ | ウズベキスタン |
VC | セントビンセントおよびグレナディーン諸島 |
VE | ベネズエラ(ボリバル共和国) |
VG | 英領バージン諸島 |
VI | 米領バージン諸島 |
VN | ベトナム |
WS | サモア |
YE | イエメン |
YT | マイヨット島 |
ZA | 南アフリカ |
ZM | ザンビア |
ZW | ジンバブエ |
Firebase Authentication: Spark プランの無料 SMS はどうなりますか?
2024 年 9 月以降に電話認証のセキュリティとサービス品質を向上させるには、Firebase プロジェクトを Cloud 請求先アカウントにリンクし、SMS サービスを有効にして使用する必要があります。
Firebase Authentication: 電話認証の使用時に SMS の不正使用を防ぐにはどうすればよいですか?
SMS トラフィック ポンピングや API の不正使用からプロジェクトを保護するには、次の手順を行います。
SMS リージョン ポリシーの設定を検討する
-
送信された SMS の数が非常に多く、確認済み SMS の数が非常に少ない(またはゼロの)リージョンを探します。送信数に対する確認済みの比率が成功率です。SMS は確実な配信プロトコルではないため、正常な成功率は通常 70 ~ 85% の範囲で、一部の地域では不正行為が発生する可能性があります。成功率 50% 未満は、SMS の送信回数は多いが、成功するログインはほとんどないことを意味します。これは、不正な行為者や SMS トラフィック ポンピングを示す一般的な指標です。
SMS リージョン ポリシーを使用して、成功率の低い SMS のリージョンを拒否するか、アプリが特定の市場での配信専用である場合は特定のリージョンのみを許可します。
認可された認証ドメインを制限する
認可されたドメインを管理するには、認証設定ダッシュボードを使用します。開発を簡素化するために、承認された認証ドメインに localhost
ドメインがデフォルトで追加されます。不正な行為者が彼らの localhost
でコードを実行して、本番環境プロジェクトにアクセスするのを防ぐために、本番環境プロジェクトの承認済みドメインから localhost
を削除することを検討してください。
App Check の有効化と適用
App Check を有効にして、プロジェクトに関連付けられたアプリケーションからのみリクエストが来ることを証明することで、API の不正使用からプロジェクトを保護できるようにします。
Firebase Authentication で App Check を使用するには、Firebase Authentication with Identity Platform にアップグレードする必要があります。
Firebase コンソールで Authentication 用に App Check を適用する必要があります(適用する前にトラフィックのモニタリングを検討してください)。また、reCAPTCHA Enterprise の承認サイトリストを再度確認し、本番環境サイトのみが含まれていることと、App Check でプロジェクトに登録されているアプリケーションのリストが正確であることを確認します。
App Check は、登録済みのアプリケーションのいずれかからの呼び出しであることを確認することで、自動攻撃から保護します。ユーザーがアプリを意図しない方法で使用すること(たとえば、送信された SMS を生成するためにログインフローを開始して終了しないなど)を防止するものではありません。
Firebase Authentication: 新しい携帯通信会社に移行した電話番号は、電話認証でサポートされますか?
現時点では、携帯通信会社間で番号を移行すると、そのエンドユーザーの SMS はすべて配信できなくなります。回避策はありません。Firebase では現在、この問題に取り組んでいます。
Firebase Authentication: Android アプリで次のエラーが表示されるのはなぜですか?
Google sign in failed
Google sign in failed
次のエラーが表示された場合は、このよくある質問のトラブルシューティング手順を行ってください。
GoogleFragment: Google sign in failed
com.google.android.gms.common.api.ApiException: 13: Unable to get token.
at
com.google.android.gms.internal.auth-api.zbay.getSignInCredentialFromIntent(com.google.android.gms:play-services-auth@@20.3.0:6)
Google ログインが認証プロバイダとして適切に有効になっていることを確認します。
Firebase コンソールで [Authentication] セクションを開きます。
[ログイン方法] タブで、[Google] をいったん無効にしてから、再度有効にします(有効な場合も含む)。
[Google] ログイン方法を開き、無効にしてから、[保存] をクリックします。
[Google] ログイン方法を再度開いて有効にし、[保存] をクリックします。
アプリで最新の Firebase 構成ファイル(
google-services.json
)を使用していることを確認してください。
アプリの構成ファイルを取得します。引き続きエラーが発生するかどうかを確認します。該当する場合は、次のトラブルシューティングの手順に進みます。
基礎となる OAuth 2.0 クライアントがあることを確認します。
Firebase Authentication: Apple プラットフォーム アプリで次のエラーが表示されるのはなぜですか?
You must specify <clientID> in <GIDConfiguration>
You must specify <clientID> in <GIDConfiguration>
次のエラーが表示された場合は、このよくある質問のトラブルシューティング手順を行ってください。
You must specify |clientID| in |GIDConfiguration|
Google ログインが認証プロバイダとして適切に有効になっていることを確認します。
Firebase コンソールで [Authentication] セクションを開きます。
[ログイン方法] タブで、[Google] をいったん無効にしてから、再度有効にします(有効な場合も含む)。
[Google] ログイン方法を開き、無効にしてから、[保存] をクリックします。
[Google] ログイン方法を再度開いて有効にし、[保存] をクリックします。
アプリで最新の Firebase 構成ファイル(
GoogleService-Info.plist
)を使用していることを確認してください。
アプリの構成ファイルを取得します。引き続きエラーが発生するかどうかを確認します。該当する場合は、次のトラブルシューティングの手順に進みます。
基礎となる OAuth 2.0 クライアントがあることを確認します。
Firebase Authentication: ウェブアプリで次のエラーが表示されるのはなぜですか?
AuthErrorCode.INVALID_OAUTH_CLIENT_ID
AuthErrorCode.INVALID_OAUTH_CLIENT_ID
次のエラーが表示された場合は、このよくある質問のトラブルシューティング手順を行ってください。
AuthErrorCode.INVALID_OAUTH_CLIENT_ID
Google ログインが認証プロバイダとして適切に有効になっていることを確認します。
Firebase コンソールで [Authentication] セクションを開きます。
[ログイン方法] タブで、[Google] をいったん無効にしてから、再度有効にします(有効な場合も含む)。
[Google] ログイン方法を開き、無効にしてから、[保存] をクリックします。
[Google] ログイン方法を再度開いて有効にし、[保存] をクリックします。
また、[Authentication] セクションの [Google] ログイン プロバイダの設定で、OAuth クライアント ID とシークレットが、Google Cloud コンソールの [認証情報] ページに表示されるウェブ クライアントと一致していることを確認してください([OAuth 2.0 クライアント ID] セクションを確認してください)。
Firebase Authentication: ウェブアプリで、リダイレクトを使用したログインが失敗し、次のエラーが表示されるのはなぜですか?
This domain YOUR_REDIRECT_DOMAIN is not
authorized to run this operation
This domain YOUR_REDIRECT_DOMAIN is not
authorized to run this operation
次のエラーが表示された場合は、このよくある質問のトラブルシューティング手順を行ってください。
This domain YOUR_REDIRECT_DOMAIN is not authorized to run this operation.
このエラーは、リダイレクト ドメインが Firebase Authentication の承認済みドメインとしてリストされていない場合、または Firebase Authentication サービスで使用する API キーが無効な場合に発生する可能性があります。
まず、YOUR_REDIRECT_DOMAIN が Firebase プロジェクトの承認済みドメインのリストに含まれていることを確認します。リダイレクト ドメインがすでにリストに表示されている場合は、無効な API キーのトラブルシューティングに進みます。
デフォルトでは、Firebase Authentication JS SDK は Browser key
というラベルが付いた Firebase プロジェクトの API キーに依存します。このキーを使用して、承認済みドメインのリストに従ってログイン リダイレクト URL が有効であることを確認します。Authentication は、Authentication SDK へのアクセス方法に応じてこの API キーを取得します。
Hosting が提供する Auth ヘルパーを使用して Authentication JS SDK でユーザーでユーザーがログインするようにした場合、Firebase は Firebase Hosting にデプロイするたびに、他の Firebase 構成とともに API キーを自動的に取得します。ウェブアプリ
firebaseConfig
のauthDomain
が、その Hosting サイトのドメインのいずれかを使用するように正しく構成されていることを確認します。これは、https://authDomain__/firebase/init.json
に移動して、projectId
がfirebaseConfig
のものと一致しているかチェックすることで確認できます。ログインコードを自社でホストする場合は、
__/firebase/init.json
ファイルを使用して、自社でホストする Authentication JS SDK リダイレクト ヘルパーに Firebase 構成を提供できます。API キーとこの構成ファイルにリストされているprojectId
は、ウェブアプリのfirebaseConfig
と一致している必要があります。
この API キーが削除されていないことを確認します。Google Cloud コンソールの [API とサービス] > [認証情報] パネルに移動し、プロジェクトのすべての API キーを確認します。
Browser key
が削除されていない場合は、次の点を確認してください。Firebase Authentication API が、キーへのアクセスが許可された API のリストに含まれていることを確認します(API キーに対する API の制限の詳細)。
ログイン コードを自社でホストする場合は、
__/firebase/init.json
ファイルにリストされている API キーが Cloud コンソールの API キーと一致していることを確認します。必要に応じて、ファイル内のキーを修正してから、アプリを再デプロイします。Browser key
が削除されている場合は、Firebase で新しい API キーを生成できます。Firebase コンソールで、[settings] > [プロジェクトの設定] に移動し、[マイアプリ] セクションでウェブアプリをクリックします。これにより、ウェブアプリの [SDK の設定と構成] セクションに API キーが自動的に作成されます。
Cloud コンソールでは、この新しい API キーは
Browser key
ではなく、Firebase ウェブアプリのニックネームと同じ名前になります。この新しい API キーに API の制限を追加する場合は、許可された API のリストに Firebase Authentication API が含まれていることを確認してください。新しい API キーが作成されたら、以下の該当する手順を完了します。
予約済みの Hosting URL を使用している場合は、アプリを Firebase に再デプロイして、残りの Firebase 構成とともに新しい API キーを自動的に取得できるようにします。
ログイン コードを自社でホストしている場合は、新しい API キーをコピーして
__/firebase/init.json
ファイルに追加し、アプリを再デプロイします。
Firebase Authentication: OAuth ウェブ クライアントを手動で構築するにはどうすればよいですか?
Google Cloud コンソールの [認証情報] ページを開きます。
ページの上部で [認証情報を作成] > [OAuth クライアント ID] を選択します。
同意画面の設定を求められた場合は、画面上の指示に沿って、この「よくある質問」の次のステップに進みます。
OAuth ウェブ クライアントを作成します。
[アプリケーションの種類] で [ウェブ アプリケーション] を選択します。
[承認済みの JavaScript 生成元] に、以下を追加します。
http://localhost
http://localhost:5000
https://PROJECT_ID.firebaseapp.com
https://PROJECT_ID.web.app
[承認済みのリダイレクト URI] には、以下を追加します。
https://PROJECT_ID.firebaseapp.com/__/auth/handler
https://PROJECT_ID.web.app/__/auth/handler
OAuth クライアントを保存します。
新しい OAuth クライアント ID とクライアント シークレットをクリップボードにコピーします。
Firebase コンソールで [Authentication] セクションを開きます。
[ログイン方法] タブで [Google ログイン] プロバイダを開き、作成して Google Cloud コンソールからコピーしたウェブサーバーのクライアント ID とシークレットを貼り付けます。[保存] をクリックします。
Firebase Authentication: %APP_NAME%
は、ユーザーがメールアドレスとパスワードを使用して登録したときに送信できる確認メール用のメール テンプレートにどのように指定されるのですか?
2022 年 12 月以前は、メール テンプレートの %APP_NAME%
に、Android アプリが Firebase プロジェクトに登録されるたびに自動的にプロビジョニングされた OAuth ブランド名が入力されていました。現在は、Google ログインが有効になっている場合にのみ OAuth ブランドがプロビジョニングされるため、%APP_NAME%
を判別する方法は次のとおりです。
OAuth ブランド名が使用可能な場合、メール テンプレートの
%APP_NAME%
が OAuth ブランド名になります(2022 年 12 月より前の動作と同様)。OAuth ブランド名を使用できない場合、メール テンプレートの
%APP_NAME%
は次のように決定されます。ウェブアプリの場合、
%APP_NAME%
はデフォルトの Firebase Hosting サイト名になります(.firebaseapp.com
と.web.app
の前の値、通常は Firebase プロジェクト ID)。モバイルアプリの場合:
リクエストに Android パッケージ名または iOS バンドル ID が存在する場合、
%APP_NAME%
は Play Store または App Store(それぞれ)で使用されるアプリ名になります。それ以外の場合、
%APP_NAME%
はデフォルトの Firebase Hosting サイト名になります(.firebaseapp.com
と.web.app
の前の値、通常は Firebase プロジェクト ID)。
デフォルトの Firebase Hosting サイト名の検索が失敗した場合、最終的な代替手段は Firebase プロジェクト ID を
%APP_NAME%
として使用することです。
Cloud Functions
Cloud Functions ランタイムのサポート
Node.js のサポートされている最新バージョンにアップグレードするにはどうすればよいですか?
- Blaze お支払いプランを利用していることを確認します。
- Firebase CLI の最新バージョンを使用していることを確認します。
- 関数
package.json
でengines
フィールドを更新します。 - 必要に応じて、Firebase Local Emulator Suite を使用して変更をテストします。
- すべての関数を再デプロイします。
関数が特定の Node.js ランタイムにデプロイされたことを確認するには、どうすればよいですか?
Firebase コンソールで、関数ダッシュボードに移動し、関数を選択して、[詳細] で関数の言語を確認します。
Firebase Extensions を使用しています。Cloud Functions ランタイムの更新の影響はありますか?
はい。拡張機能は Cloud Functions を使用するため、拡張機能のランタイムは Cloud Functions と同じスケジュールで更新する必要があります。
プロジェクトにインストールされている各拡張機能は、定期的に最新バージョンに更新することをおすすめします。プロジェクトの拡張機能は、Firebase コンソールまたは Firebase CLI でアップグレードできます。
Cloud Functions の料金
Cloud Functions for Firebase を使用するのに請求先アカウントが必要なのはなぜですか?
Cloud Functions for Firebase は、いくつかの有料の Google サービスを使用しています。Firebase CLI 11.2.0 以降を使用した新しい関数のデプロイは、Cloud Build と Artifact Registry に依存しています。古いバージョンへのデプロイでも同じように Cloud Build を使用しますが、ストレージには Artifact Registry ではなく Container Registry と Cloud Storage を使用します。これらのサービスの使用料金は、既存の料金設定とは別に請求されます。
Firebase CLI 11.2.0 以降のバージョンの保存容量
Artifact Registry は、関数を実行するコンテナを提供します。Artifact Registry では最初の 500 MB を料金なしで利用できるため、最初の関数のデプロイでは料金は発生しません。そのしきい値を超えると、追加ストレージの 1 GB あたり月額 $0.10 が課金されます。
Firebase CLI 11.1.x 以前のバージョンの保存容量
古いバージョンにデプロイされた関数の場合、Container Registry が、関数を実行するコンテナを提供します。関数のデプロイに必要なコンテナごとに料金が請求されます。保存されるコンテナごとに少額の課金が発生します。たとえば、1 GB のストレージの場合月額 $0.026 が請求されます。
請求の変更について詳しくは、以下をご確認ください。
- Cloud Functions の料金: 既存の無料枠に変更はありません。
- Cloud Build の料金: Cloud Build では無料枠が提供されます。
- Artifact Registry の料金。
- Container Registry の料金。
Cloud Functions for Firebase はまだ無料で使用できますか?
はい。Blaze プランでは、Cloud Functions は、呼び出し、コンピューティング時間、インターネット トラフィックを無料枠で利用できます。最初の 2,000,000 回の呼び出し、400,000 GB 秒、200,000 CPU 秒、5 GB のインターネット下り(外向き)トラフィックが毎月無料で提供されます。これらのしきい値を超える使用量に対してのみ請求が発生します。
最初の 500 MB の無料ストレージを超えると、デプロイ オペレーションのたびに、関数のコンテナに使用される保存容量に対して少額の料金が発生します。開発プロセスが、テスト用の関数のデプロイに依存している場合、開発時に Firebase Local Emulator Suite を使用することで、コストをさらに低く抑えることができます。
Firebase の料金プランと Cloud Functions の料金のサンプル シナリオをご覧ください。
Firebase で Cloud Functions for Firebase の割り当てと上限を引き上げる予定はありますか?
いいえ。最大ビルド時間上限の削除を除き、割り当てを変更する予定はありません。1 日あたりのビルド割り当てである 120 分に達した場合は、エラーや警告が返されるのではなく、Blaze お支払いプランに基づいて請求が発生します。割り当てと上限をご覧ください。
Google Cloud の $300 分のクレジットを入手できますか?
はい。Google Cloud コンソールで Cloud Billing アカウントを作成して $300 分のクレジットを取得し、その Cloud Billing アカウントを Firebase プロジェクトにリンクできます。
Google Cloud クレジットの詳細については、こちらをご覧ください。
$300 分のクレジットを入手する場合、クレジットをすべて使い切った後でもプロジェクトを利用できるようにするため、Firebase コンソールで Blaze お支払いプランを設定しておく必要があります。
Firebase について学習するために Codelab をフォローしたいのですが、一時的な請求先アカウントを付与してもらえますか?
申し訳ございませんが、付与できません。Cloud Billing アカウントがなくても、Firebase エミュレータを使用して開発を行うことができます。または、Google Cloud の無料トライアルにお申し込みください。この変更に伴いお支払いで問題が生じる場合は、Firebase サポートまでご連絡ください。
請求額が高額になりそうで心配です。
Google Cloud コンソールで予算アラートを設定して費用を管理できます。また、関数ごとに作成される課金対象インスタンスの数の上限を設定できます。一般的なシナリオでの費用については、Cloud Functions の料金の例をご覧ください。
現在の請求額を確認するにはどうすればよいですか?
Firebase コンソールで [使用量と請求額] のダッシュボードを確認してください。
Firebase Extensions を使用しています。請求先アカウントが必要ですか?
はい。拡張機能は Cloud Functions を使用するため、拡張機能には他の関数と同じ料金が発生します。
拡張機能を使用するには、Blaze お支払いプランにアップグレードする必要があります。Firebase サービスの使用量に関連する請求に加えて、インストールした各拡張機能が必要とする Firebase リソースに対して(使用しない場合でも)少額の料金(通常は月額約 $0.01)が請求されます。
Cloud Messaging
Cloud Messaging: Notifications Composer と Cloud Messaging の違いは何ですか?
Firebase Cloud Messaging は、クライアント SDK、HTTP および XMPP サーバー プロトコルを介して包括的なメッセージング機能を提供します。より複雑なメッセージ要件があるデプロイの場合は、FCM の方が適しています。
Notifications Composer は、Firebase Cloud Messaging 上に構築された、軽量でサーバーレスのメッセージング ソリューションです。ユーザー フレンドリーなグラフィカル コンソールを備え、コード要件が軽減された Notifications Composer を使用してメッセージを簡単に送信することで、ユーザーへの再アプローチとユーザーの確保、アプリの成長促進、マーケティング キャンペーンのサポートを実現できます。
機能 | Notifications Composer | Cloud Messaging | |
---|---|---|---|
ターゲット | 単一のデバイス | ||
トピック(天気など)に登録されたクライアント | |||
事前定義されたユーザー セグメント(アプリ、バージョン、言語)のクライアント | |||
特定のアナリティクス ユーザーのクライアント | |||
デバイス グループのクライアント | |||
クライアントからサーバーへのアップストリーム | |||
メッセージの種類 | 最大 2 KB の通知 | ||
最大 4 KB のデータ メッセージ | |||
配信 | 即時 | ||
将来のクライアント デバイスの現地時間 | |||
アナリティクス | 組み込みの Notifications アナリティクスのデータ収集および目標到達プロセス アナリティクス |
Cloud Messaging: Apple は APN 用の以前のバイナリ プロトコルを非推奨にすると発表しました。対応が必要なことはありますか?
いいえ。Firebase Cloud Messaging は 2017 年に HTTP/2 ベースの APN プロトコルに移行されました。FCM を使用して iOS デバイスに通知を送信する場合は、特に何もする必要はありません。
Cloud Messaging: FCM を使用するには、他の Firebase サービスを使用する必要がありますか?
Firebase Cloud Messaging は、他の Firebase サービスを使用せずに、GCM と同じようにスタンドアロン コンポーネントとして使用できます。
Cloud Messaging: 既存の Google Cloud Messaging(GCM)のデベロッパーは、 Firebase Cloud Messaging に移行する必要がありますか?
FCM は、Firebase ブランドの GCM の新しいバージョンです。GCM のコア インフラストラクチャを引き継いでおり、Cloud Messaging の開発を容易にするための新たな SDK を備えています。
FCM SDK にアップグレードすると、次のようなメリットが得られます。
- クライアントの開発がシンプルになります。ご自身の登録や、定期購入の再試行ロジックを書き込む必要がなくなります。
- 設定不要の通知ソリューションを使用できます。ウェブ コンソールを備えた、サーバーレスの通知ソリューションである Notifications Composer を使用することで、Google アナリティクスの分析情報に基づいてすべてのユーザーがターゲット ユーザーに通知を送信できるようになります。
GCM SDK から FCM SDK へのアップグレード方法については、Android アプリと iOS アプリの移行ガイドをご覧ください。
Cloud Messaging: 対象のデバイスがメッセージを受信できないのはなぜですか?
デバイスがメッセージの受信に成功していないと考えられる場合は、まず次の 2 つの可能性を確認してください。
通知メッセージのフォアグラウンド メッセージ処理。クライアント アプリがデバイスのフォアグラウンドで動作している場合、アプリは通知メッセージを処理するメッセージ処理ロジックを追加する必要があります。詳しくは、 iOS と Android のドキュメントをご覧ください。
ネットワーク ファイアウォールの制限。インターネットとの間で送受信されるトラフィックを制限するファイアウォールが組織で使用されている場合、Firebase Cloud Messaging クライアント アプリがメッセージを受信できるようにするには、FCM との接続を許可するようにファイアウォールを構成する必要があります。次のポートを開きます。
- 5228
- 5229
- 5230
通常、FCM は 5228 を使用しますが、5229 や 5230 を使用することもあります。FCM では特定の IP が提供されないので、Google の ASN 15169 にリストされた IP ブロックに含まれているすべての IP アドレスについて、発信接続を受け入れるようにファイアウォールを設定する必要があります。
Cloud Messaging: Android アプリに onMessageReceived
を実装しましたが、呼び出されません。
アプリがバックグラウンドで動作している場合、システムトレイに通知メッセージが表示され、onMessageReceived
は呼び出されません。通知メッセージにデータ ペイロードがある場合、通知メッセージはシステムトレイに表示され、通知メッセージに含まれていたデータは、ユーザーが通知をタップしたときに起動するインテントから取得できます。
詳しくは、メッセージの受信と処理をご覧ください。
Notifications Composer: Notifications Composer と Cloud Messaging の違いは何ですか?
Notifications Composer は、Firebase Cloud Messaging 上に構築された、軽量でサーバーレスのメッセージング ソリューションです。ユーザー フレンドリーなグラフィカル コンソールを備え、コード要件が軽減された Notifications Composer を使用してメッセージを簡単に送信することで、ユーザーへの再アプローチとユーザーの確保、アプリの成長促進、マーケティング キャンペーンのサポートを実現できます。
Firebase Cloud Messaging は、クライアント SDK、HTTP および XMPP サーバー プロトコルを介して包括的なメッセージング機能を提供します。より複雑なメッセージ要件があるデプロイの場合は、FCM の方が適しています。
Firebase Cloud Messaging と Notifications Composer のメッセージ機能の比較を以下に示します。
機能 | Notifications Composer | Cloud Messaging | |
---|---|---|---|
ターゲット | 単一のデバイス | ||
トピック(天気など)に登録されたクライアント | |||
事前定義されたユーザー セグメント(アプリ、バージョン、言語)のクライアント | |||
特定のアナリティクス ユーザーのクライアント | |||
デバイス グループのクライアント | |||
クライアントからサーバーへのアップストリーム | |||
メッセージの種類 | 最大 2 KB の通知 | ||
最大 4 KB のデータ メッセージ | |||
配信 | 即時 | ||
将来のクライアント デバイスの現地時間 | |||
アナリティクス | 組み込みの Notifications アナリティクスのデータ収集および目標到達プロセス アナリティクス |
Notifications Composer: Google Cloud Messaging(GCM)のデベロッパーが Notifications Composer を使用するにはどうすればよいですか?
Notifications Composer は、Google アナリティクスのインサイトに基づいてすべてのユーザーがターゲット ユーザーに通知を送信できるようにする、設定不要のソリューションです。また Notifications Composer は、すべてのメッセージの目標到達プロセスを分析することで、通知の効果の簡単な評価を可能にしています。
GCM のデベロッパーの場合、Notifications Composer を使用するには、GCM SDK から FCM SDK にアップグレードする必要があります。Android アプリと iOS アプリの移行ガイドをご覧ください。
2023 年 6 月に非推奨になった FCM 機能
どの FCM API が 2023 年 6 月 20 日に非推奨になったのですか。また、非推奨になった FCM API がある場合は、どうすればよいですか?
サポート終了に伴い、次の API / SDK が影響を受けます。
サーバー API
API Name | API エンドポイント | ユーザーへの影響 | 必要な対応 |
---|---|---|---|
レガシー HTTP プロトコル | https://fcm.googleapis.com/fcm/send | エンドポイントへのリクエストは 2024 年 6 月 21 日以降に失敗します。 | HTTP v1 API へ移行します。 |
レガシー XMPP プロトコル | fcm-xmpp.googleapis.com:5235 | エンドポイントへのリクエストは 2024 年 6 月 21 日以降に失敗します。 | HTTP v1 API へ移行します。 |
インスタンス ID サーバー API | https://iid.googleapis.com/v1/web/iid | エンドポイントへのリクエストは 2024 年 6 月 21 日以降に失敗します。 | ウェブ JS SDK を使用して FCM ウェブ登録を作成します。 |
https://iid.googleapis.com/iid/* | エンドポイントは引き続き機能しますが、2024 年 6 月 21 日を過ぎると、静的サーバーキーを使用した認証はサポートされなくなります。 | サービス アカウントから派生した OAuth 2.0 アクセス トークンを使用します。 | |
デバイス グループ管理 API | https://fcm.googleapis.com/fcm/notification | エンドポイントは引き続き機能しますが、2024 年 6 月 21 日以降、静的サーバーキーを使用した認証はサポートされません。 | サービス アカウントから派生した OAuth 2.0 アクセス トークンを使用します。 |
XMPP を介したアップストリーム メッセージング | fcm-xmpp.googleapis.com:5235 | 2024 年 6 月 21 日以降、アプリ内で FirebaseMessaging.send の API 呼び出しを行っても、アプリサーバーにアップストリーム メッセージがトリガーされることはありません。 | この機能をサーバー ロジックに実装します。たとえば、デベロッパーは、独自の HTTP/gRPC エンドポイントを実装し、エンドポイントを直接呼び出し、クライアントからアプリサーバーにメッセージを送信できます。gRPC を使用したアップストリーム メッセージングの実装例については、こちらの gRPC クイックスタートをご覧ください。 |
Batch Send API | https://fcm.googleapis.com/batch | エンドポイントへのリクエストは 2024 年 6 月 21 日以降に失敗します。 | 多重化に HTTP/2 をサポートする、標準の HTTP v1 API 送信メソッドに移行します。 |
Firebase Admin SDK APIs
API Name | API 言語 | ユーザーへの影響 | 必要な対応 |
---|---|---|---|
sendToDevice()
|
Node.js | この API は従来の HTTP 送信 API を呼び出すため、2024 年 6 月 21 日以降機能しなくなります。 | send() メソッドを使用します。
|
sendToDeviceGroup()
|
Node.js | この API は従来の HTTP 送信 API を呼び出すため、2024 年 6 月 21 日以降機能しなくなります。 | send() メソッドを使用します。
|
sendToTopic()
|
Node.js | この API は従来の HTTP 送信 API を呼び出すため、2024 年 6 月 21 日以降機能しなくなります。 | send() メソッドを使用します。
|
sendToCondition()
|
Node.js | この API は従来の HTTP 送信 API を呼び出すため、2024 年 6 月 21 日以降機能しなくなります。 | send() メソッドを使用します。 |
sendAll()/sendAllAsync()/send_all()/sendMulticast()/SendMulticastAsync()/send_multicast()
|
Node.js、Java、Python、Go、C# | これらの API はバッチ送信 API を呼び出すため、2024 年 6 月 21 日以降機能しなくなります。 | 最新の Firebase Admin SDK にアップグレードし、代わりに新しい API(sendEach()/
sendEachAsync()/send_each()/sendEachForMulticast()/sendEachForMulticastAsync()/
send_each_for_multicast() )を使用してください。
新しい API は非推奨のバッチ送信 API を呼び出さなくなりました。そのため、古い API よりも多くの同時 HTTP 接続が作成される可能性があります。 |
クライアント SDK
SDK のバージョン | ユーザーへの影響 | 必要な対応 |
---|---|---|
GCM SDK(2018 年に非推奨) | 2024 年 6 月 21 日以降、GCM SDK を使用しているアプリは、トークンの登録や FCM からのメッセージの受信ができなくなります。 | アップグレードしていない場合は、Android SDK を最新の Firebase SDK にアップグレードしてください。 |
JS SDK バージョン 7.0.0 未満(2019 年にバージョン 7.0.0 で互換性を破る変更あり) | 古い JS SDK を使用しているウェブアプリでは、2024 年 6 月 21 日以降にトークンを登録できなくなります。 | Firebase Web SDK を最新バージョンにアップグレードしてください。 |
サービスのダウングレードは 2024 年 6 月より前に行われますか?
いいえ。サービスはダウングレードされず、12 か月の間(2023 年 6 月 20 日~ 2024 年 6 月 21 日)古い API から新しい API に移行できます。2024 年 6 月に行われる API の廃止の影響を受けないように、できるだけ早く移行を計画することを強くおすすめします。
2024 年 6 月以降、上記の API/SDK の使用時にエラーの増加や機能の不足が発生する場合があります(詳細については、次のよくある質問をご覧ください)。
非推奨の API はいつ、どのように廃止されますか?
FCM では、2024 年 7 月 22 日頃から非推奨の API の段階的な廃止を開始します。この日以降、非推奨のサービスは「フリッカー」プロセスの対象となり、リクエストの増加に伴ってエラー レスポンスが返されるようになります。段階的な廃止期間中は、次の動作やエラー レスポンスが発生する頻度が時間の経過とともに増加することが予想されます。
カテゴリ | 予想される影響 |
---|---|
レガシー HTTP プロトコル | リクエストが HTTP コード 301 で拒否される。 |
レガシー XMPP プロトコル | リクエストがエラーコード 302 で拒否される。 |
FCM アップストリーム | FCM バックエンドでメッセージがサイレントに破棄される。 |
Batch Send API | リクエストがエラーコード UNIMPLEMENTED で拒否され、「API は非推奨です」というエラー メッセージが表示される。 |
GCM SDK - トークンを登録する | リクエストが HTTP コード 301 で拒否される。 |
GCM SDK - メッセージを送信する | リクエストがエラーコード 400 で拒否され、「V3 トークンは非推奨です」というエラー メッセージが表示される。 |
JS SDK バージョンが 7.0.0 未満 | リクエストが HTTP コード 501 で拒否される。 |
サーバーキーを使用してインスタンス ID とデバイス グループ管理 API にアクセスする | リクエストが HTTP コード 401 で拒否される。 |
OAuth 2.0 トークンとサーバーキーの違いは何ですか?
OAuth 2.0 トークンは、サービス アカウントから派生した有効期間の短いトークンです。これは Google の標準認証モデルであり、静的なサーバーキーよりも安全です。
Google 認証ライブラリを使用してトークンを取得する方法については、認証情報を使用してアクセス トークンを作成するをご覧ください。
異なるエンドポイントへのリクエストに OAuth 2.0 トークンを使用する場合、リクエスト ヘッダーが異なることに注意してください。
- HTTP v1 API:
Authorization: Bearer $oauth_token
- インスタンス ID サーバー API とデバイス グループ管理 API:
Authorization: Bearer $oauth_token
access_token_auth: true
新しい API にすべてのリクエストを一度に移行することはできますか?
新しい API へのトラフィックは徐々に増やすことをおすすめします。定期的に毎分 600,000 件以上のメッセージが送信されることが予想される場合は、割り当ての引き上げ手順や、トラフィックの分散方法に関する推奨事項について、Firebase サポートにお問い合わせください。
トピック / デバイス グループにメッセージを送信する際の HTTP v1 API と以前の API の違いは何ですか?
トピック: v1 API を使用する場合、トピック ターゲットに接頭辞「/topics/」を追加する必要はありません。
デバイス グループ: HTTP v1 API でグループ トークンをトークン ターゲットとして使用できます。ただし、HTTP v1 API のレスポンスでは、成功数と失敗数が返されません。FCM トピックを使用するか、デバイス グループを自分で管理することをおすすめします。
HTTP v1 API は、1 つのリクエスト内で複数のトークンへのメッセージ送信をサポートしますか?
いいえ。レガシー HTTP API では「マルチキャスト」と呼ばれていたこの機能は、スケーラビリティを考慮して設計された HTTP v1 API ではサポートされていません。
エンドツーエンドのレイテンシが重要なユースケースや、ファンアウトの合計サイズが小さい(100 万未満)ユースケースでは、HTTP v1 API を使用して複数の独立したリクエストを送信することをおすすめします。HTTP/2 上の HTTP v1 API は、マルチキャスト リクエストの 99.9%(100 トークン未満を送信)に対して同様に動作します。外れ値のユースケース(1,000トークンを送信)では、スループット率が最大 3 分の 1 になるため、この非定型的なユースケースを最適化するには追加の同時実行が必要になります。HTTP v1 API を使用すると、以前のマルチキャストよりも信頼性と可用性が向上します。
スループットと下り(外向き)帯域幅が優先されるユースケースや、合計ファンアウト サイズが大きい(100 万を超える)ユースケースには、Google はトピック メッセージングを推奨します。トピック メッセージングでは、トピックの受信者を 1 回だけサブスクライブする必要がありますが、トピックサイズの最大値の制限なしに、プロジェクトあたり 10,000 QPS のファンアウト レートまで実現できす。
新しい API を含むバージョンの Firebase Admin SDK は何ですか?
プラットフォーム | Firebase Admin SDK のバージョン |
---|---|
Node.js | >=11.7.0 |
Python | >=6.2.0 |
Java | >=9.2.0 |
Go | >=4.12.0 |
.NET | >=2.4.0 |
バッチ送信 API と HTTP v1 API の違いは何ですか?
FCM Batch Send API は、HTTP v1 API と同じメッセージ形式と認証メカニズムを使用します。ただし、使用するエンドポイントは異なります。効率を高めるには、HTTP/2 を使用して、同じ HTTP 接続を介して HTTP v1 API に複数のリクエストを送信することを検討してください。
プロジェクトにアクセスできない場合はどうすればよいですか?
Google Cloud サポートチームにお問い合わせください。
新しいプロジェクトで以前の Cloud Messaging API を有効にできますか?
いいえ。2024 年 5 月 20 日以降、新しいプロジェクトで以前の API を有効にすることはできなくなります。
以前の Cloud Messaging API はいつ無効にできますか?
HTTP v1 API に完全に移行したことを確認したら、以前の Cloud Messaging API を無効にできます(API がすでに無効になっている場合は、ページが読み込まれないことがあります)。
FCM の割り当てと上限
大規模な顧客ベースに 2 分以内に通知するにはどうすればよいですか?
申し訳ございませんが、このユースケースはサポートできません。トラフィックを 5 分間にわたって分散する必要があります。
アプリでユーザーにイベントについて通知しており、ビジネスモデをサポートするためこれらのメッセージをすぐに配信する必要があります。割り当てを上げてもらうことはできますか?
残念ながら、このような理由で割り当ての増加を承認することはできません。トラフィックを 5 分間にわたって分散する必要があります。
メッセージはスケジュール設定されたイベントに関するものです。すべてのトラフィックを毎時 0 分に送信するにはどうすればよいですか?
イベントの 5 分以上前に通知の送信を開始することをおすすめします。
割り当てリクエストが処理されるまでにどのくらい時間がかかりますか?
これは、FCM の使用方法によって多少異なります。いずれの場合も、数営業日以内に回答いたします。場合によっては、FCM の使用方法やさまざまな状況についてやり取りが発生し、処理が長引くことがあります。すべての要件が満たされている場合、ほとんどのリクエストは 2 週間以内に処理されます。
割り当て使用量をモニタリングするにはどうすればよいですか?
割り当て指標をグラフ化してモニタリングする方法については、Google Cloud のガイダンスをご覧ください。
429 エラーは、独自に対処することや、企業で対処することが困難です。429 エラーを回避するために、免除や割り当て増加を申請できますか?
割り当て制限が厳しいと感じるお客様もいらっしゃると思いますが、割り当てはサービスの信頼性を維持するために不可欠であり、例外を認めることはできません。
一時的なイベントで割り当てを増やすことはできますか?
最大 1 か月間のイベントをサポートするために、追加の割り当てをリクエストできます。イベントの開始日と終了日を明記して、イベントの 1 か月以上前にリクエストを提出してください。FCM はリクエストに応えるよう現実的に可能な限り努力いたします(増加を保証するものではありません)。これらの割り当ての増加は、イベントの終了日後に元に戻されます。
現在の割り当てが変更される可能性はありますか?
Google が軽率に変更することはありません。ただし、システムの完全性を保護するために必要に応じて割り当てを変更することはあります。このような変更があった場合は、可能な限り事前に通知します。
Cloud Storage for Firebase
Cloud Storage for Firebase: 2024 年 9 月に発表されたデフォルトのバケットに関する変更について教えてください。
デフォルトの Cloud Storage バケットの変更の詳細については、Cloud Storage のドキュメントをご覧ください。
Cloud Storage for Firebase: Cloud Storage for Firebase を使用できないのはなぜですか?
Cloud Storage for Firebase は、App Engine の無料枠にデフォルトのバケットを作成します。そのため、クレジット カード番号を入力したり、Cloud Billing アカウントを有効にしたりすることなく、Firebase と Cloud Storage for Firebase をすばやく起動し、実行することができます。また、Firebase と Google Cloud プロジェクトの間でデータを簡単に共有することもできます。
ただし、このバケットが作成できず、Cloud Storage for Firebase を使用できなくなる既知の事例が 2 つあります。
- App Engine マスター/スレーブ Datastore アプリケーションがインストールされていた Google Cloud からインポートされたプロジェクト。
-
ドメインの接頭辞が付いたプロジェクトが配置されている Google Cloud からインポートされたプロジェクト。例:
domain.com:project-1234
。
現在、この問題の回避策はありません。Firebase コンソールで新しいプロジェクトを作成し、そのプロジェクトで Cloud Storage for Firebase を有効にすることをおすすめします。
Cloud Storage for Firebase: Cloud Storage for Firebase API を使用しているときに、サービス アカウントの権限と失敗したサービス アカウントのオペレーションに関するエラーコード 412 レスポンスが返されるのはなぜですか?
412 エラーコードが返されるのは、Cloud Storage for Firebase API がプロジェクトで有効になっていないか、サービス アカウントに必要な権限がないためです。
関連するよくある質問をご覧ください。
Cloud Storage for Firebase: Spark プランのプロジェクトで実行可能ファイルを保存できますか?
無料(Spark)プランのプロジェクトの場合、Firebase は Cloud Storage for Firebase と Firebase Hosting による Windows、Android、Apple の特定の実行可能ファイル形式のアップロードとホスティングをブロックします。このポリシーは、Google プラットフォームでの不正行為を防止するためのものです。
2023 年 9 月 28 日以降に作成されたすべての Spark プロジェクトで、許可されていないファイルの配信、ホスティング、ファイル アップロードがブロックされます。この日より前にアップロードされたファイルを持つ既存の Spark プロジェクトでは、そのようなファイルも引き続きアップロードしてホストできます。
この制限は Spark プランのプロジェクトに適用されます。従量課金制(Blaze)プランのプロジェクトは影響を受けません。
次のファイル形式は、Firebase Hosting と Cloud Storage for Firebase でホストできません。
- 拡張子が
.exe
、.dll
、.bat
の Windows ファイル - 拡張子が
.apk
の Android ファイル - 拡張子が
.ipa
の Apple プラットフォーム ファイル
必要なご対応
2023 年 9 月 28 日以降もこれらのファイル形式をホストする場合は、次のようにします。
- Hosting の場合: Blaze プランにアップグレードしてから、
firebase deploy
コマンドを使用してこれらのファイル形式を Firebase Hosting にデプロイします。 - Storage の場合: Blaze プランにアップグレードし、GCS CLI、Firebase コンソール、または Google Cloud コンソールを使用してこれらのファイル形式を任意のバケットにアップロードします。
Firebase のツールを使用して、Firebase Hosting リソースと Cloud Storage リソースを管理します。
- Firebase Hosting でリソースを管理するには、このガイドに沿って、Firebase コンソールを使用してリリースを削除します。
- Cloud Storage でリソースを管理するには、プロジェクトのストレージ プロダクト ページに移動します。
- [ファイル] タブで、フォルダ階層内で削除が許可されていないファイルを探し、パネルの左側にあるファイル名の横のチェックボックスを使用して選択します。
- [削除] をクリックし、ファイルが削除されたことを確認します。
Firebase ツールを使用した Hosting リソースとクライアント ライブラリを使用した Cloud Storage for Firebase バケットの管理の詳細に関するドキュメントをご覧ください。
Cloud Storage for Firebase: アップロードとダウンロードのオペレーションが予期せず増加しているのはなぜですか?
以前は、Cloud Storage for Firebase API へのダウンロード リクエストとアップロード リクエストが正しくカウントされませんでした。Google では、2023 年 9 月 15 日よりこの問題を解決するための措置を講じています。
Blaze ユーザーの場合、アップロードとダウンロードのオペレーションが毎月の請求にカウントされるようになります。Spark ユーザーの場合、毎月の無料利用枠にカウントされるようになります。
[使用量] ページで無料利用枠にカウントされる数量増加を確認することをおすすめします。
Cloud Storage for Firebase: Cloud Storage for Firebase を使用する Firebase プロジェクトに関連付けられた新しいサービス アカウント ID が表示されるのはなぜですか?
Firebase では、ユーザー認証情報を共有せずに、サービス アカウントを使用してサービスの操作と管理を行えます。Firebase プロジェクトを作成すると、プロジェクトで複数のサービス アカウントが用意されます。
Cloud Storage for Firebase が使用するサービス アカウントのスコープはプロジェクトであり、名前は service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com
です。
2022 年 9 月 19 日より前に Cloud Storage for Firebase を使用した場合は、以前にリンクした Cloud Storage バケットに firebase-storage@system.gserviceaccount.com
という名前の追加のサービス アカウントが表示されることがあります。2022 年 9 月 19 日をもって、このサービス アカウントはサポートを終了しました。
Firebase コンソールの [サービス アカウント] タブには、プロジェクトに関連付けられたすべてのサービス アカウントが表示されます。
新しいサービス アカウントの追加
以前にサービス アカウントを削除した場合、またはサービス アカウントがプロジェクトにない場合は、次のいずれかの方法でアカウントを追加できます。
- (推奨)自動: AddFirebase REST エンドポイントを使用して、バケットを Firebase に再インポートします。このエンドポイントを呼び出す必要があるのは 1 回だけです。リンクされたバケットごとに呼び出す必要はありません。
-
手動:サービス アカウントの作成と管理の手順に沿って操作します。そのガイドに沿って、IAM ロール
Cloud Storage for Firebase Service Agent
とサービス アカウント名service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com
を持つサービス アカウントを追加します。
新しいサービス アカウントの削除
アプリから Cloud Storage バケットへのアクセスがブロックされる可能性があるため、サービス アカウントを削除しないことを強くおすすめします。プロジェクトからサービス アカウントを削除するには、サービス アカウントを無効にするの手順に沿ってください。
Cloud Storage for Firebase の料金
Cloud Storage for Firebase: 2024 年 9 月に発表された Cloud Storage の料金プランの要件に関する変更について教えてください。
Cloud Storage のお支払いプランの要件の変更について詳しくは、Cloud Storage のドキュメントをご覧ください。
アップロードとダウンロードのオペレーション料金を予測するにはどうすればよいですか?
Firebase の料金ページにアクセスし、Blaze プランの料金計算ツールを使用します。料金計算ツールには、Cloud Storage for Firebase のすべての使用タイプが一覧表示されます。
スライダーを使用して、Storage バケットの予想使用量を入力します。料金計算ツールは毎月の請求額を見積もります。
Spark プランで Cloud Storage for Firebase のアップロード、ダウンロード、または保存容量の上限を超えるとどうなりますか?
Spark プランのプロジェクトで Cloud Storage の上限を超えた場合、結果は超えた上限のタイプによって異なります。
- GB 保存済みの上限を超えた場合、保存されているデータの一部を削除するか、または保存容量が大きいか上限のないプランにアップグレードしない限り、そのプロジェクトのデータを保存することはできなくなります。
- GB ダウンロード済みの上限を超えた場合、上限が少ないか上限のないプランにアップグレードしない限り、翌日(米国太平洋時間の午前 0 時から開始)までアプリでデータをダウンロードすることはできなくなります。
- アップロードまたはダウンロード オペレーションの上限を超えた場合、上限が少ないか上限のないプランにアップグレードしない限り、翌日(米国太平洋時間の午前 0 時から開始)までアプリでデータをアップロードまたはダウンロードすることはできなくなります。
Crashlytics
Crashlytics のトラブルシューティングとよくある質問のページにアクセスすると、役立つヒントや、その他のよくある質問への回答をご覧いただけます。
Dynamic Links
Dynamic Links: Firebase の Dynamic Links の今後の計画はどのようなものですか?
Dynamic Linksよくある質問をご覧ください。
Dynamic Links: Android アプリが各ダイナミック リンクに 2 度アクセスするのはなぜですか?
getInvitation
API は、保存されたダイナミック リンクを消去して 2 度アクセスされないようにしています。必ず各ディープリンク アクティビティで autoLaunchDeepLink
パラメータを false
に設定してこの API を呼び出し、メインのアクティビティ以外でアクティビティがトリガーされた場合にこれを消去します。
Hosting
Hosting: Spark プランのプロジェクトで実行可能ファイルを保存できますか?
無料(Spark)プランのプロジェクトの場合、Firebase は Cloud Storage for Firebase と Firebase Hosting による Windows、Android、Apple の特定の実行可能ファイル形式のアップロードとホスティングをブロックします。このポリシーは、Google プラットフォームでの不正行為を防止するためのものです。
2023 年 9 月 28 日以降に作成されたすべての Spark プロジェクトで、許可されていないファイルの配信、ホスティング、ファイル アップロードがブロックされます。この日より前にアップロードされたファイルを持つ既存の Spark プロジェクトでは、そのようなファイルも引き続きアップロードしてホストできます。
この制限は Spark プランのプロジェクトに適用されます。従量課金制(Blaze)プランのプロジェクトは影響を受けません。
次のファイル形式は、Firebase Hosting と Cloud Storage for Firebase でホストできません。
- 拡張子が
.exe
、.dll
、.bat
の Windows ファイル - 拡張子が
.apk
の Android ファイル - 拡張子が
.ipa
の Apple プラットフォーム ファイル
必要なご対応
2023 年 9 月 28 日以降もこれらのファイル形式をホストする場合は、次のようにします。
- Hosting の場合: Blaze プランにアップグレードしてから、
firebase deploy
コマンドを使用してこれらのファイル形式を Firebase Hosting にデプロイします。 - Storage の場合: Blaze プランにアップグレードし、GCS CLI、Firebase コンソール、または Google Cloud コンソールを使用してこれらのファイル形式を任意のバケットにアップロードします。
Firebase のツールを使用して、Firebase Hosting リソースと Cloud Storage リソースを管理します。
- Firebase Hosting でリソースを管理するには、このガイドに沿って、Firebase コンソールを使用してリリースを削除します。
- Cloud Storage でリソースを管理するには、プロジェクトのストレージ プロダクト ページに移動します。
- [ファイル] タブで、フォルダ階層内で削除が許可されていないファイルを探し、パネルの左側にあるファイル名の横のチェックボックスを使用して選択します。
- [削除] をクリックし、ファイルが削除されたことを確認します。
Firebase ツールを使用した Hosting リソースとクライアント ライブラリを使用した Cloud Storage for Firebase バケットの管理の詳細に関するドキュメントをご覧ください。
Hosting: Firebase コンソールの Hosting リリース履歴テーブルに、ローカル プロジェクトのファイル数よりも多いファイル数が表示されるのはなぜですか?
Firebase では Hosting サイトに関するメタデータを含むファイルが自動的に追加されます。これらのファイルは、リリースの合計ファイル数に含まれます。
Hosting: Firebase Hosting にデプロイできるファイルの最大サイズはどれくらいですか?
Hosting のサイズ上限は、ファイルあたり 2 GB です。
これよりも大きいファイルを保存するには Cloud Storage を使用することをおすすめします。この場合、個々のオブジェクトの最大サイズはテラバイト範囲です。
Hosting: 1 つの Firebase プロジェクトに含めることができる Hosting サイトの数はどれくらいですか?
Firebase Hosting マルチサイト機能では、プロジェクトごとに最大 36 個のサイトがサポートされます。
Performance Monitoring
Performance Monitoring のトラブルシューティングとよくある質問のページにアクセスすると、役立つヒントや、その他のよくある質問への回答をご覧いただけます。
Performance Monitoring: 作成できるカスタム URL パターンの数はどれくらいですか?
アプリ 1 個あたり合計 400 個までのカスタム URL パターンを作成でき、各アプリのドメイン 1 個あたり 100 個までのカスタム URL パターンを作成できます。
Performance Monitoring: パフォーマンス データがリアルタイムで表示されないのはなぜですか?
リアルタイム パフォーマンス データを確認するには、リアルタイム データ処理と互換性のあるバージョンの Performance Monitoring SDK がアプリで使用されるようにしてください。
- iOS - v7.3.0 以降
- tvOS - v8.9.0 以降
- Android - v19.0.10 以降(または Firebase Android BoM v26.1.0 以降)
- ウェブ - v7.14.0 以降
常に最新バージョンの SDK を使用することをおすすめします。ただし、上述のいずれのバージョンでも、Performance Monitoring でほぼリアルタイムのデータ処理が行われます。
Realtime Database
Realtime Database: 「同時データベース接続」について教えてください。
同時接続は、1 つのモバイル デバイス、ブラウザタブ、またはサーバーアプリがデータベースに接続されることです。Firebase では、アプリのデータベースへの同時接続数についてハードリミットを設けています。この制限は、Firebase およびユーザーを不正行為から守るためのものです。
Spark プランにおける上限値は 100 で、この数値を上げることはできません。Flame プランおよび Blaze プランにおけるデータベースごとの同時接続の上限値は 200,000 です。
すべてのユーザーが同時に接続するわけではないため、この上限値は、アプリを利用する合計ユーザー数にはなりません。200,000 を超える同時接続が必要な場合は、複数のデータベースでスケールするをご覧ください。
Realtime Database: Realtime Database のスケーリングに上限はありますか?
Realtime Database の各インスタンスには、毎秒の書き込みオペレーション数に上限があります。少量の書き込みの場合、書き込みオペレーション数は毎秒約 1,000 回に制限されます。この上限に近づいている場合、マルチパスの更新を使用してバッチ オペレーションを行うと、スループットが向上する場合があります。
また、データベースの各インスタンスには、データベースへの同時接続数の上限が設けられています。ほとんどのアプリケーションでは、デフォルトの上限値で十分対応できます。追加スケールが必要となるアプリを構築している場合、そのスケールに対応するために、複数のデータベース インスタンスにアプリケーションを分割する必要が生じることがあります。また、代替データベースとして Cloud Firestore を使用することも検討してください。
Realtime Database: Realtime Database の使用量上限を超えた場合は、どうすればよいですか?
Firebase コンソールで、Realtime Database の使用量上限を超えたというメール通知アラートまたは通知を受け取った場合は、超えた使用量上限に基づいて対処できます。Realtime Database の使用状況を確認するには、Firebase コンソールの Realtime Database の使用状況ダッシュボードに移動します。
ダウンロード上限を超えている場合は、Firebase お支払いプランをアップグレードするか、次回の請求期間の開始時にダウンロード上限がリセットされるのをお待ちください。ダウンロード量を減らすには、次の手順を試してください。
- リッスン オペレーションから返されるデータを制限するクエリを追加します。
- インデックス付けされていないクエリを確認します。
- データの更新のみをダウンロードするリスナーを使用します。たとえば、
once()
ではなくon()
です。 - セキュリティ ルールを使用して、許可されていないダウンロードをブロックします。
保存容量の上限を超えている場合は、サービスの中断を避けるためにお支払いプランをアップグレードします。データベース内のデータ量を減らすには、次の手順を試してください。
- 定期的なクリーンアップ ジョブを実行します。
- データベース内の重複データを減らします。
データ削除が保存容量の割り当てに反映されたことを確認できるまでに、しばらく時間がかかる場合があります。
データベースへの同時接続の上限を超えている場合は、サービスの中断を避けるためにプランをアップグレードします。データベースへの同時接続を管理するには、ユーザーにリアルタイム接続が必要ない場合は REST API 経由でユーザーを介して接続してみてください。
Realtime Database: Spark プランで Realtime Database の保存容量またはダウンロードの上限を超えるとどうなりますか?
想定請求額を提示する目的で、Spark プランでユーザーが使用できるリソースには上限が設けられています。つまり、各月のプランのリソース上限を超過すると、これ以上のリソースの使用と追加料金が発生しないようにアプリが無効になります。
Realtime Database: Spark プランで Realtime Database の同時接続数の上限を超えるとどうなりますか?
アプリが Spark プランでの同時接続上限に達すると、既存の接続のいくつかが閉じられるまでは、以降のすべての接続が拒否されます。接続済みのユーザーに対しては、アプリは引き続き機能します。
Realtime Database: 自動バックアップとは何ですか?Realtime Database では毎時間のバックアップを行っていますか?
自動バックアップは Blaze お支払いプランのお客様向けの拡張機能です。Firebase Realtime Database のデータを 1 日 1 回バックアップし、Google Cloud Storage にアップロードします。
毎時間のバックアップは行っておりません。
Realtime Database: Realtime Database について 2016 年 9 月から 2017 年 3 月の間に平均より低い帯域幅が報告されたのはなぜですか?
帯域幅の計算には、通常、SSL 暗号化オーバーヘッド(OSI モデルのレイヤ 5 に基づく)が含まれています。しかし、2016 年 9 月に、帯域幅の報告で暗号化オーバーヘッドを無視するバグが導入されました。これにより、アカウントで報告された帯域幅と請求書が数か月間不自然に低くなった可能性があります。
2017 年 3 月下旬にバグの修正をリリースし、帯域幅の報告と請求を通常のレベルに戻しました。
Remote Config
Remote Config: 値をフェッチしてもアプリの動作や外観が変わらないのはなぜですか?
fetchAndActivate()
で値をフェッチしない限り、値はローカルに保存されますが有効にはなりません。フェッチした値を有効にするには、activate
を呼び出します。この設計を使用すると、activate
を呼び出すタイミングを選択できるため、アプリの動作や外観が変わるタイミングを制御できます。activate
を呼び出した後、更新されたパラメータ値がいつ使用されるかは、アプリのソースコードによって異なります。
たとえば、値をフェッチし、次回ユーザーがアプリを起動したときに値を有効にすることができます。そうすると、サービスからフェッチされる値をアプリが待機している間、アプリの起動を遅らせる必要がなくなります。更新されたパラメータ値をアプリが使用すると、アプリの動作や外観が変わります。
Remote Config API と使用モデルの詳細については、Remote Config API の概要をご覧ください。
Remote Config: アプリの開発中に多数のフェッチ リクエストを行っています。アプリがフェッチ リクエストを送信したときに、サービスから常に最新の値が取得されるわけではないのはなぜですか?
アプリの開発中は、開発とテストの反復処理をすばやく行うために、構成を頻繁に(1 時間に何度も)フェッチして有効化する必要が生じる場合があります。10 人程度のデベロッパーがいるプロジェクトで迅速なイテレーションに対応するには、アプリ内で FirebaseRemoteConfigSettings
オブジェクトの最小フェッチ間隔(setMinimumFetchIntervalInSeconds
)に小さな値を一時的に設定します。
Remote Config: アプリがフェッチ リクエストを送信した後、Remote Config サービスがフェッチした値を返す時間はどれくらいですか?
デバイスは、通常はフェッチされた値を 1 秒未満で受け取り、フェッチされた値を数ミリ秒で受け取ることもよくあります。Remote Config サービスはフェッチ リクエストを数ミリ秒で処理しますが、フェッチ リクエストを完了するために必要な時間は、デバイスのネットワーク速度とデバイスが使用するネットワーク接続のレイテンシによって異なります。
ユーザー エクスペリエンスの質を落とすことなく、フェッチした値をできるだけ早くアプリで有効にすることを目標にしている場合は、アプリがフルスクリーン更新を行うたびに fetchAndActivate
が呼び出されるようにこの呼び出しを追加することを検討してください。
Test Lab
Test Lab のトラブルシューティング ページにアクセスすると、役立つヒントや、よくある質問への回答をご覧いただけます。
Firebase User Segmentation Storage
Firebase User Segmentation Storage とは何ですか?
Firebase User Segmentation Storage は、Firebase インストール ID、関連する属性とセグメント、作成したオーディエンス リストを保存し、それらを使用する他の Firebase サービス(Crashlytics、FCM、Remote Config のカスタマイズなど)にターゲティング情報を提供します。