その他の課題がある場合や、該当する問題が以下で見つからない場合は、バグの報告または機能のリクエストをお送りください。また、Stack Overflow のディスカッションにご参加ください。
Firebase プロジェクトと Firebase アプリ
Firebase プロジェクトとは何ですか?
プロジェクトは、Apple、Android、ウェブのプラットフォームにまたがるアプリのコンテナであり、クロスプラットフォーム アプリ間で Database、Config、Notifications などの機能の共有をサポートします。
アプリの Apple、Android、およびウェブ バリエーションを単一のプロジェクトに追加する必要があります。複数の環境(開発、ステージング、本番環境)をサポートするには、このようなプロジェクトを複数使用できます。
既存の Google Cloud プロジェクトに Firebase を追加するにはどうすればよいでしょうか?
既存のプロジェクトが Google Cloud Console または Google API Console で管理されている場合があります。デフォルトでは、これらのプロジェクトは Firebase コンソールで表示できますが、Firebase プロジェクトとはみなされません。
Firebase を既存の Google Cloud プロジェクトに追加するには、Firebase コンソールのランディング ページで [プロジェクトを追加] をクリックし、[プロジェクト名] メニューでプロジェクトを選択します。
1 つのアカウントでいくつのプロジェクトを保有できますか?
- Spark お支払いプラン - プロジェクト割り当ての上限によって少ない数しか保有できません(通常は約 5~10)。
- Blaze お支払いプラン - Cloud 請求先アカウントが良好な状態である限り、Cloud 請求先アカウントあたりのプロジェクト割り当ての数は大幅に増加します。
多くのデベロッパーにとってプロジェクト割り当ての上限が問題になることはほとんどありませんが、必要に応じてプロジェクト割り当ての増加をリクエストできます。
プロジェクトが完全に削除されるまで 30 日かかります。完全に削除されるまでは割り当てにカウントされます。
1 つの Firebase プロジェクトに含めることができる Firebase アプリの数はどれくらいですか?
Firebase プロジェクトは、Apple、Android、ウェブでの Firebase アプリのコンテナです。Firebase プロジェクト内の Firebase アプリの合計数は 30 個までに制限されています。
この数を超えると、パフォーマンス(特に Google アナリティクスのパフォーマンス)が低下し、最終的にアプリの数が増え、一部のプロダクトの機能が動作しなくなります。また、Firebase アプリをプロジェクトに追加すると、基礎となる OAuth 2.0 クライアント ID が 1 つ以上作成されます。1 つのプロジェクト内で作成できるクライアント ID の数には上限があり、30 個程度です。
エンドユーザーから見て、1 つの Firebase プロジェクト内のすべての Firebase アプリが、同じアプリケーションのプラットフォーム別のバリアントとなるようにしてください。たとえば、ホワイトラベル アプリケーションを開発する場合、個別にラベル付けしたアプリごとに固有の Firebase プロジェクトを用意すべきですが、そのラベルの Apple バージョンと Android バージョンを同じプロジェクトに含めることができます。Firebase プロジェクトと Firebase アプリのベスト プラクティスについては、Firebase プロジェクトについて理解するをご覧ください。
まれなケースとして、プロジェクトで 30 個を超えるアプリが必要になる場合は、アプリの上限の引き上げをリクエストできます。このリクエストを行うには、プロジェクトが Blaze お支払いプランの適用対象である必要があります。Google Cloud Console にアクセスしてリクエストし、評価を受けてください。割り当ての管理の詳細については、Google Cloud のドキュメントをご覧ください。
Firebase アプリのアプリ ID はどこで確認できますか?
Firebase コンソールで、settings[プロジェクトの設定] に移動します。[アプリ] カードまで下にスクロールし、目的の Firebase アプリをクリックして、「アプリ ID」などのアプリの情報を確認します。
アプリ ID の値の例をいくつか示します。
-
Firebase iOS アプリ:
1:1234567890:ios:321abc456def7890
-
Firebase Android アプリ:
1:1234567890:android:321abc456def7890
-
Firebase ウェブアプリ:
1:1234567890:web:321abc456def7890
Play、AdMob、AdWords、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 コンソールへのアクセスに使用できるブラウザは何ですか?
Firebase コンソールは、代表的な Chrome、Firefox、Safari、Edge などのパソコンのブラウザの新しいバージョンでアクセスできます。現時点では、モバイル ブラウザの一部はサポートされていません。
Firebase コンソールが読み込まれません。なぜですか?
Firebase コンソールの読み込みに問題が発生した場合は、次のトラブルシューティングの手順をお試しください。
- サービスの中断が発生している可能性があるため、Firebase Status Dashboard の [Console] 行で確認します。
- 対応ブラウザを使用していることを確認します。
- シークレット ウィンドウまたはプライベート ウィンドウで Firebase コンソールを読み込んでみます。
- ブラウザの拡張機能をすべて無効にします。
- ウイルス対策ソフトウェア、ネットワーク プロキシ、ファイアウォールなどが接続をブロックしていないかを確認します。その可能性がある場合は、無効にしてみます。
- 別のネットワークまたはデバイスを使用して Firebase コンソールを読み込んでみます。
上記のトラブルシューティングの手順のいずれでも問題が解決しない場合は、サポートにお問い合わせください。
Firebase コンソールの言語はどのように決定されますか?
Firebase コンソールの言語設定は、Google アカウント設定で選択した言語に基づきます。
言語設定を変更するには、言語を変更をご覧ください。
Firebase コンソールは次の言語に対応しています。
- 英語
- ポルトガル語(ブラジル)
- フランス語
- ドイツ語
- インドネシア語
- 日本語
- 韓国語
- ロシア語
- 中国語(簡体)
- スペイン語
- 中国語(繁体)
Firebase コンソールはどのようなロールと権限をサポートしていますか?
Firebase コンソールと Google Cloud Console の基本的なロールと権限は同じです。ロールと権限の詳細については、Firebase IAM のドキュメントをご覧ください。
Firebase は、オーナー、編集者、閲覧者という基礎的な(基本)ロールをサポートしています。
- プロジェクトのオーナーは、プロジェクトに他のメンバーを追加したり、統合(BigQuery や Slack などのサービスにリンクしているプロジェクト)を設定したりできます。また、プロジェクトに対する完全な編集権限が付与されます。
- プロジェクトの編集者は、プロジェクトに対する完全な編集権限を持っています。
- プロジェクトの閲覧者は、プロジェクトに対する読み取りアクセス権のみを持っています。Firebase コンソールでは現在、プロジェクト閲覧者に対して編集 UI コントロールは非表示 / 無効になっていません。ただし閲覧者ロールが割り当てられているプロジェクト メンバーの場合、これらの操作は失敗します。
Firebase は以下もサポートします。
- Firebase の事前定義ロール - オーナー、編集者、閲覧者という基本のロールよりも詳細なアクセス制御を可能にする、キュレートされた Firebase 固有のロール。
- カスタムロール - 組織の特定の要件を満たす一連の権限を調整するために作成した、完全にカスタマイズされた IAM のロール。
料金
有料のプロダクトと無料のプロダクトにはどのようなものがありますか?
Firebase の有料インフラストラクチャ プロダクトには、Realtime Database、Cloud Storage for Firebase、Functions、Hosting、Test Lab、電話認証があります。これらのすべての機能では、一部を無料枠でご利用いただけます。
Firebase は、アナリティクス、Cloud Messaging、Notifications Composer、Remote Config、App Indexing、Dynamic Links、Crash Reporting などの無料プロダクトも数多く取り揃えています。無料の Spark プランを含め、すべてのプランでこれらのプロダクトを無制限に使用できます。さらに、電話認証以外のすべての認証機能は無料です。
Firebase では有料プロダクトに利用できる無料トライアル クレジットが提供されますか?
Firebase の有料サービスは、Google Cloud の無料トライアルでご利用いただけます。Google Cloud と Firebase を初めて使用する場合、$300 分の無料クレジットを含む 90 日間の無料トライアル期間を利用して、Google Cloud プロダクトとサービスを操作および評価できます。
Google Cloud の無料トライアル期間中は、無料トライアル用の Cloud 請求先アカウントが提供されます。この請求先アカウントを使用する Firebase プロジェクトには、無料トライアル期間中に Blaze お支払いプランが適用されます。
この無料トライアル用の Cloud 請求先アカウントを設定しても、Google により請求されることはありませんのでご安心ください。無料トライアル用 Cloud 請求先アカウントを有料アカウントにアップグレードして課金を明示的に有効にしない限り、請求されることはありません。有料アカウントへのアップグレードは、トライアル中いつでも可能です。アップグレード後も、残りのクレジットは(90 日の期間以内であれば)引き続き使用できます。
無料トライアルの有効期限終了後に引き続き Firebase プロジェクトをご利用いただくには、プロジェクトを Spark お支払いプランにダウングレードするか、Firebase コンソールで Blaze お支払いプランを設定する必要があります。
Google Cloud 無料トライアルの詳細をご覧ください。
最適なお支払いプランを選ぶにはどうすればよいですか?
Spark のお支払いプラン
Spark プランは、アプリを無料で開発するのにうってつけです。すべての無料の Firebase 機能(アナリティクス、Notifications Composer、Crashlytics など)と、有料のインフラストラクチャ プロダクトを存分に活用できます。ただし、Spark プランの各月のリソース制限を超過した場合、その月の残りの期間はアプリにアクセスできなくなります。また、Spark プラン使用時には Google Cloud の機能は利用できません。
Blaze のお支払いプラン
Blaze プランは本番環境アプリ向けに構成されています。Blaze プランでは、有料の Google Cloud 機能でプロジェクトを拡張することもできます。消費するリソースに対してのみ支払いが発生するため、需要に応じたスケーリングが可能です。Blaze プランの料金については、業界最先端のクラウド プロバイダに対抗できる料金設定を実現すべく努力を続けております。
使用量と料金を管理するにはどうすればよいですか?
Firebase コンソールの次のダッシュボードで、プロジェクト リソースの使用状況を追跡できます。
Flame お支払いプランは現在どうなっていますか?
2020 年 1 月の時点で、Flame お支払いプラン(追加割り当ての月額 $25)の新規登録の受け付けは終了しました。
- Spark プランと Blaze プランの既存のプロジェクトおよび新規プロジェクトでは、Flame プランへの切り替えや登録はできません。
- Flame プランの既存のプロジェクトを別のお支払いプランに移行した場合、Flame プランに戻すことはできません。
- 現時点では、Flame プランの既存のプロジェクトでは引き続き Flame プランを利用できます。ただし、別のお支払いプランに移行するために必要な日程については、今後数か月以内にお知らせいたします。
- Flame プランへの参照がドキュメントから削除されました。
Flame プランの終了について他にご質問がある場合はその他のよくある質問をご覧ください。
Firebase の他のお支払いプランについては、Firebase の料金ページをご覧ください。既存のプロジェクトを別のお支払いプランに移行する場合は、プロジェクトの Firebase コンソールで移行できます。
Flame プランのプロジェクトの場合、プランの割り当てと利用可能な機能は引き続き有効です。
- Flame プランでは、次のプロダクトの使用量割り当てはありません。
BigQuery およびその他の Google Cloud IaaS - Flame プランには、次のプロダクトの無料の使用量割り当てが含まれます。
A/B Testing、 アナリティクス、 App Indexing、 Cloud Messaging(FCM)、 Crashlytics、 Dynamic Links、 Performance Monitoring、 Predictions、および Remote Config Flame プランには、次のプロダクトの使用量割り当てが含まれます。
プロダクト 機能 Flame プランに含まれる使用量割り当て Authentication 電話認証 - 米国、カナダ、インド 1 万/月 電話認証 - 他のすべての国 1 万/月 その他の Authentication サービスと機能 ✔(無料) Cloud Firestore データ ストレージ 合計 2.5 GiB 下り(外向き)ネットワーク 20 GiB/月 ドキュメントの書き込み 10 万/日 ドキュメントの読み取り 25 万/日 ドキュメントの削除 10 万/日 Cloud Functions for Firebase 呼び出し 200 万/月 GB 秒 40 万/月 CPU 秒 20 万/月 アウトバウンド ネットワーキング 5 GB/月 Hosting データ ストレージ 合計 10 GB データ移行 50 GB/月 カスタム ドメインと SSL ✔(無料) プロジェクトごとに複数のサイト ✔(無料) Firebase ML カスタムモデルのホスティング / サービス提供 ✔(無料) AutoML Vision Edge データセット 画像 1,000 件/プロジェクト AutoML Vision Edge のトレーニング 3 時間/プロジェクト Cloud Vision API 含まれていません Realtime Database 同時接続 20 万 データ ストレージ 合計 2.5 GB データのダウンロード 20 GB/月 プロジェクトごとに複数のデータベース 含まれていません Cloud Storage データ ストレージ 合計 50 GB データのダウンロード 50 GB/日 アップロード オペレーション 10 万/日 ダウンロード オペレーション 25 万/日 プロジェクトごとに複数のバケット 含まれていません Test Lab 仮想デバイスでのテスト 10 件/日 実機でのテスト 5 件/日
Flame プランの終了に関するその他のよくある質問
Firebase の固定料金で使用しているプロジェクト / プロセス / ビジネスモデルがあります。どうすればよいですか?
Blaze お支払いプランに登録し、予算アラートを設定してください。
Flame プランの新規プロジェクトを作成するための特別なアクセス権限が提供されますか?
いいえ。Firebase では、プロジェクトを Flame プランに切り替えるかまたは登録するための特別なアクセス権限を提供していません。
Flame プランのプロジェクトを別のお支払いプランに変更しました。元に戻すにはどうすればよいですか?
Flame プランに切り替えることはできなくなりました。Flame プランで提供されるサービスにアクセスするには、Blaze お支払いプランご使用中であることをご確認のうえ、プロジェクトに予算アラートを設定することをご検討ください。
Flame プランの廃止後、プロジェクトが自動的に別のお支払いプランに切り替えられました。どうすればよいですか?
お支払いプランの自動変更は、Flame プランの終了に関する現在の対応範囲に含まれません。監査ログで請求の変更を確認してください。
Flame プランが廃止されるのはなぜですか?
長年にわたって Flame プランの利用が減少し、Flame プランを使用するプロジェクトのほとんどでは、その価値が最大限に利用されていないことが判明しました。このお支払いプランを維持しても費用効果がなく、リソースを他の Firebase イニシアチブへ投じる方が、すべてのユーザーにとってより良いサービスを提供できると考えています。
Blaze プランの無料使用と Spark プランの無料使用には、どのような違いがありますか?
Blaze プランの無料使用は日単位で計算されます。Cloud Functions、電話認証、Test Lab 用の Spark プランとは、使用量上限も異なります。
Cloud Functions の Blaze プランの無料使用はプロジェクト単位ではなく Cloud 請求先アカウント単位で計算され、次の上限があります。
- 200 万回呼び出し/月
- 40 万 GB 秒/月
- 20 万 CPU 秒/月
- 5 GB のネットワーク下り(外向き)/月
電話認証の場合、Blaze プランの無料使用は月単位で計算されます。
Test Lab の Blaze プランの無料使用には、次の上限があります。
- 実機の時間は 1 日あたり 30 分
- 仮想デバイスの時間は 1 日あたり 60 分
Spark から Blaze にプランを変更すると、無料の使用量割り当てがリセットされますか?
Spark プランの無料の使用量は Blaze プランに組み込まれます。Blaze プランに移行しても、無料の使用量はリセットされません。
「同時データベース接続」について教えてください。
同時接続は、1 つのモバイル デバイス、ブラウザタブ、またはサーバーアプリがデータベースに接続されることです。Firebase では、アプリのデータベースへの同時接続数についてハードリミットを設けています。この制限は、Firebase およびユーザーを不正行為から守るためのものです。
Spark プランにおける上限値は 100 で、この数値を上げることはできません。Flame プランおよび Blaze プランにおけるデータベースごとの同時接続の上限値は 200,000 です。
すべてのユーザーが同時に接続するわけではないため、この上限値は、アプリを利用する合計ユーザー数にはなりません。200,000 を超える同時接続が必要な場合は、複数のデータベースでスケールするをご覧ください。
Spark プランで Realtime Database の保存容量またはダウンロードの上限を超えるとどうなりますか?
想定請求額を提示する目的で、Spark プランでユーザーが使用できるリソースには上限が設けられています。つまり、各月のプランのリソース上限を超過すると、これ以上のリソースの使用と追加料金が発生しないようにアプリが無効になります。
Spark プランで Realtime Database の同時接続上限を超えるとどうなりますか?
アプリが Spark プランでの同時接続上限に達すると、既存の接続のいくつかが閉じられるまでは、以降のすべての接続が拒否されます。接続済みのユーザーに対しては、アプリは引き続き機能します。
Spark プランで Cloud Storage のアップロード、ダウンロード、または保存容量の上限を超えるとどうなりますか?
Spark プランのプロジェクトで Cloud Storage の上限を超えた場合、結果は超えた上限のタイプによって異なります。
- GB 保存済みの上限を超えた場合、保存されているデータの一部を削除するか、または保存容量が大きいか上限のないプランにアップグレードしない限り、そのプロジェクトのデータを保存することはできなくなります。
- GB ダウンロード済みの上限を超えた場合、上限が少ないか上限のないプランにアップグレードしない限り、翌日(米国太平洋時間の午前 0 時から開始)までアプリでデータをダウンロードすることはできなくなります。
- アップロードまたはダウンロード オペレーションの上限を超えた場合、上限が少ないか上限のないプランにアップグレードしない限り、翌日(米国太平洋時間の午前 0 時から開始)までアプリでデータをアップロードまたはダウンロードすることはできなくなります。
Firebase の Google Cloud との統合はどのように機能しますか?
Firebase は Google Cloud と深く結びついています。プロジェクトは Firebase と Google Cloud で共有されるため、プロジェクトで Firebase サービスと Google Cloud サービスを有効にできます。Firebase コンソールまたは Google Cloud Console から同じプロジェクトにアクセスできます。詳細は以下のとおりです。
- 一部の 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 サイトをご覧ください。
Firebase プロジェクトの請求先アカウントを Google Cloud Console で追加または削除すると、そのプロジェクトはどうなりますか?
Google Cloud Console でプロジェクトに Cloud 請求先アカウントが追加された場合、そのプロジェクトが現在 Spark プランにある場合、同じプロジェクトが Firebase Blaze プランに自動的にアップグレードされます。
一方、既存の有効な Cloud 請求先アカウントが Google Cloud Console でプロジェクトから削除された場合、そのプロジェクトは Firebase Spark プランにダウングレードされます。
アップグレード、ダウングレード、キャンセルはいつでもできますか?
はい、アップグレード、ダウングレード、キャンセルはいつでもできます。ただし、ダウングレードやキャンセルに応じた払い戻しを受け取ることはできませんのでご注意ください。つまり、請求対象期間の途中でダウングレードまたはキャンセルを行った場合、その月の終わりまでの料金を支払う必要があります。
どのようなサポートを受けられますか?
無料プランで利用中のものを含むすべての Firebase アプリについて、米国太平洋時間の営業時間内に、Firebase のスタッフのメールによるサポートを受けられます。すべてのアカウントで、請求関連の問題、アカウント関連の問題、技術的な質問(トラブルシューティング)インシデント レポートについては無制限のサポートを受けられます。
Blaze プランで使用量の上限を設定できますか?
いいえ、現状では Blaze プランで使用量の上限を設定することはできません。Blaze プランで使用量の上限をサポートするオプションを評価中です。
Blaze ユーザーはプロジェクトまたはアカウントの予算を定義し、支出がこうした上限に近づいた場合にアラートを受け取ることができます。予算アラートの設定方法をご確認ください。
自動バックアップとは何ですか?毎時間バックアップを行っているのですか?
自動バックアップは Blaze お支払いプランのお客様向けの拡張機能です。Firebase Realtime Database のデータを 1 日 1 回バックアップし、Google Cloud Storage にアップロードします。
毎時間のバックアップは行っておりません。
オープンソース、非営利団体、教育向けの割引はありますか?
Spark プランは、非営利団体、学校、オープンソースのプロジェクトなど、あらゆる個人や組織がご利用いただけるプランです。これらのプランにはすでに十分な特典が考慮されているため、オープンソース、非営利団体、教育プロジェクトに対する特別な割引やプランは提供しておりません。
企業向けの契約、料金設定、サポート、または専用インフラストラクチャによるホスティングを提供していますか?
Blaze プランはあらゆる規模の企業に適しています。SLA は、クラウド インフラストラクチャの業界標準を十分に満たしています。ただし、現時点では、企業向けの契約、料金設定、サポート、Realtime Database などのサービス向けの専用インフラストラクチャによるホスティング(オンプレミスのインストール)は提供していません。現在こうした機能の一部を追加すべく努力を重ねております。
アドホックな料金設定を提供していますか?1、2 個の機能についてのみ従量課金制を使用したいのですが。
Blaze プランでアドホックな料金設定を提供しています。このプランでは、使用する機能に対してのみ支払います。
有料の Firebase プランは Google 広告とどのように連携しているのですか?有料プランに無料の広告クレジットが組み込まれているのですか?
Firebase の料金プランは Google 広告から独立しているため、無料の広告クレジットはありません。Firebase のデベロッパーであるお客様は、Google 広告のアカウントを Firebase に「リンク」させ、コンバージョン トラッキングのサポートを行えます。
すべての広告キャンペーンは Google 広告で直接管理され、Google 広告の請求は Google 広告コンソールで管理されます。
Cloud Functions の料金
Cloud Functions for Firebase を使用するときに請求先アカウントが必要なのはなぜですか?
Cloud Functions for Firebase は、いくつかの有料の Google サービス(Cloud Build、Container Registry、Cloud Storage)を利用しています。これらのサービスの使用料金は、既存の料金設定とは別に請求されます。
関数のランタイム コンテナの作成に必要なコンピューティング時間の料金のみが請求されます。
Cloud Storage は Container Registry と連携し、関数を実行するコンテナを保存するための保存容量を提供します。関数のデプロイに必要なコンテナごとに料金が請求されます。保存されるコンテナごとに少額の課金が発生します。たとえば、1 GB のストレージの場合月額 $0.026 が請求されます。
請求の変更について詳しくは、以下をご確認ください。
- Cloud Functions の料金: 既存の無料枠に変更はありません。
- Cloud Build の料金: Cloud Build では無料枠が提供されます。
- Container Registry の料金。
Cloud Functions for Firebase はまだ無料で使用できますか?
はい。Blaze プランでは、Cloud Functions は、呼び出し、コンピューティング時間、とインターネット トラフィックを無期限の無料枠で利用できます。最初の 2,000,000 回の呼び出し、400,000 GB 秒、200,000 CPU 秒、5 GB のインターネット トラフィック(下り)が毎月無料で提供されます。これらのしきい値を超える使用量に対してのみ請求が発生します。
各デプロイ オペレーションでは、関数のコンテナに使用されるストレージ容量に対して、少額の課金が発生します。たとえば、関数が Container Registry で 1 GB のストレージを消費した場合、月額 $0.026 の課金が発生します。開発プロセスが、テスト用の関数のデプロイに依存している場合、開発時に Firebase Local Emulator Suite を使用することで、コストをさらに小さく抑えることができます。
Firebase の料金プランと Cloud Functions の料金のサンプル シナリオをご覧ください。
Firebase では Cloud Functions for Firebase の割り当てと上限を引き上げる予定がありますか?
いいえ。最大ビルド時間上限の削除を除き、割り当てを変更する予定はありません。1 日あたりのビルド割り当てである 120 分に達した場合は、エラーや警告が返されるのではなく、Blaze お支払いプランに基づいて請求が発生します。割り当てと上限をご覧ください。
Google Cloud の $300 分のクレジットを入手できますか?
はい。Google Cloud Console で Cloud 請求先アカウントを作成して $300 分のクレジットを取得し、その Cloud 請求先アカウントを Firebase プロジェクトにリンクできます。
Google Cloud クレジットの詳細については、こちらをご覧ください。
$300 分のクレジットを入手する場合、クレジットをすべて使い切った後でもプロジェクトを利用できるようにするため、Firebase コンソールで Blaze お支払いプランを設定しておく必要があります。
Firebase について学習するために Codelab をフォローしたいのですが、一時的な請求先アカウントを付与してもらえますか?
申し訳ございませんが、付与できません。Cloud 請求先アカウントがなくても、Firebase エミュレータを使用して開発を行うことができます。または、Google Cloud の無料トライアルにお申し込みください。この変更に伴いお支払いで問題が生じる場合は、Firebase サポートまでご連絡ください。
請求額が高額になりそうで心配です。
Google Cloud Console で予算アラートを設定して費用を管理できます。また、関数ごとに作成される課金対象インスタンスの数の上限を設定できます。一般的なシナリオでの費用については、Cloud Functions の料金の例をご覧ください。
現在の請求額を確認するにはどうすればよいですか?
Firebase コンソールで [使用量と請求額] のダッシュボードを確認してください。
Firebase Extensions を使用しています。今回の変更の影響はありますか?
はい。拡張機能は Cloud Functions を使用するため、Node.js 10 以降を使用する拡張機能には、他の関数と同じ料金が発生します。
Node.js 10 以降に基づく拡張機能を使用するには、Blaze お支払いプランにアップグレードする必要があります。Firebase サービスの使用量に関連する請求に加えて、インストールした各拡張機能が必要とする Firebase リソースに対して(使用しない場合でも)少額の料金(通常は月額約 $0.01)が請求されます。
プライバシー
Firebase のプライバシーとセキュリティに関する情報はどこにありますか?
Firebase のプライバシーとセキュリティのページをご覧ください。
Firebase SDK は、アナリティクスの外部で使用状況または診断情報をロギングしますか?
はい。これは現在 iOS 専用ですが、今後変更される可能性があります。Firebase Apple プラットフォーム SDK には、デフォルトで FirebaseCoreDiagnostics
フレームワークが含まれています。このフレームワークは、SDK の使用状況と診断情報を収集するために Firebase によって使用され、今後のプロダクト強化の優先順位付けに役立てられます。FirebaseCoreDiagnostics
は省略可能です。Firebase 診断ログの送信をオプトアウトするには、アプリからライブラリのリンクを解除します。GitHub で、ロギングされた値を含む完全なソースを参照できます。
A/B Testing
A/B Testing: 作成して実行できるテストの数はどれくらいですか?
プロジェクトあたり最大 300 個のテストを使用できます。その内訳は、実行中のテストが最大 24 個まで、残りは下書きまたは完了済みのテストになります。
AdMob
AdMob: 自分の Windows アプリを Firebase にリンクできますか?
いいえ。現在のところ、Windows アプリはサポートされていません。
AdMob: Firebase コンソールから AdMob に自分のアプリをリンクできないのはなぜですか?
AdMob アプリは AdMob コンソールを介して Firebase アプリにリンクできます。詳細
AdMob: Firebase アプリを AdMob アプリにリンクするにはどのような権限やアクセス権が必要ですか?
そのようなリンクを行うには、次のアクセス権が必要です。
- AdMob: AdMob 管理者である必要があります。
- Firebase:
firebase.links.create
権限が必要です。この権限は、オーナーロールと Firebase 管理者ロールに含まれています。 - Google アナリティクス: Firebase プロジェクトに関連付けられたプロパティの編集ロールまたはユーザー管理ロールが必要です。詳細
AdMob: 同じ AdMob アカウント内の複数のユーザーが AdMob アプリと Firebase アプリをリンクすることはできますか?
マルチユーザー AdMob アカウントの場合、最初の Firebase リンクを作成して Firebase の利用規約に同意したユーザーのみが、AdMob アプリと Firebase アプリの間に新しいリンクを作成できます。
AdMob: AdMob を使用するには、AdMob 用の Firebase SDK と Google Mobile Ads SDK のどちらを使用すべきですか?
- iOS プロジェクトの場合、Google Mobile Ads SDK を使用します。
pod 'Google-Mobile-Ads-SDK'
- Android プロジェクトの場合、Google Mobile Ads SDK を使用します。
implementation 'com.google.android.gms:play-services-ads:20.5.0'
AdMob 用の Firebase Android SDK には、Google アナリティクス用の Firebase SDK が推移的に含まれています。そのため、アプリで Google アナリティクス API を呼び出して Google Mobile Ads SDK の使用に切り替える場合は、必ず Google アナリティクス用 Firebase SDK の依存関係(
)をアプリのcom.google.firebase:firebase-analytics build.gradle
ファイルに明示的に追加してください。 - C++ プロジェクトと Unity プロジェクトについては、それぞれのドキュメントに記載された手順を行ってください。
アナリティクス
アナリティクス: 2021 年 10 月の更新での Google アナリティクス セクションの変更内容はどのようなものですか?
変更内容の概要については、Firebase ヘルプセンターの記事 Firebase 向け Google アナリティクスの Google アナリティクス 4 の新機能をご覧ください。
アナリティクス: Firebase プロダクトを使用する際に、その一環として Google アナリティクスが推奨されるのはなぜですか?
Google アナリティクスは、Firebase の機能と連携して詳細な分析情報を提供する、無料で無制限のアナリティクス ソリューションです。Crashlytics のイベントログ、FCM の通知の効果、Dynamic Links のディープリンクのパフォーマンス、Google Play のアプリ内購入データを表示することができます。Remote Config、Predictions などで高度なオーディエンス ターゲティングを実現します。
Google アナリティクスは、Firebase コンソール内でインテリジェンス レイヤとして機能します。高品質なアプリの開発、ユーザーベースの拡大、収益増加のための、行動につながる分析情報を提供します。
開始するには、ドキュメントをご覧ください。
アナリティクス: 条件を完全には満たしていないユーザーをどのように分類しますか?
こうしたユーザーに対しては、「ターゲット除外」を行うことで問題を再構築できます。たとえば、「何かを購入したユーザーには広告を表示しない」ものとして問題を再構築し、こうしたユーザーからなるユーザー層を生成します。
アナリティクス: アナリティクスのデータを Firebase の他の機能と共有する方法は、どのように制御できますか?
デフォルトでは、Google アナリティクスのデータは他の Firebase の機能や Google の機能を拡張するために使用されます。Google アナリティクスのデータの共有方法は、プロジェクト設定でいつでも変更できます。 データ共有設定の詳細をご確認ください。
アナリティクス: 完全にアップグレードされた新しい Google アナリティクス アカウントはどのようなものですか?
Google アナリティクスの新しいアップグレードの詳細については、ブログ記事をご覧ください。
アナリティクス: Firebase 向け Google アナリティクスと、完全にアップグレードされた Google アナリティクス アカウントのどちらを使用しているかを確認するにはどうすればよいですか?
Firebase コンソールのアナリティクス ダッシュボードに [Google アナリティクスでデータを確認する] というリンクが表示されている場合、完全にアップグレードされた Google アナリティクス アカウントをプロジェクトで使用しています。
Firebase コンソールで Google アナリティクス カードを表示して確認することもできます(settings > [プロジェクトの設定] > [統合] の順に移動し、[管理] をクリックするとアクセスできます)。[Google アナリティクスのプロパティ] セクションに [リンクされた Google アナリティクス アカウント] が表示されている場合、そのプロジェクトは完全な Google アナリティクスを Firebase で使用しています。[リンクされた Google アナリティクス アカウント] が表示されない場合、そのプロジェクトは Firebase 向け Google アナリティクスを使用しています。
アナリティクス: 新しい Firebase 向け Google アナリティクスにアップグレードすると、データはどうなりますか?
Firebase コンソール内の既存の Firebase プロジェクトのアナリティクス データには影響しません。
現在使用しているのと同じダッシュボードとワークフローを引き続き使用でき、Google アナリティクスの高度な機能の一部にもアクセスできます。
アップグレードを行った後にクロスデバイス レポートを有効にする場合、UserID を使用してデータの重複排除が行われることに注意してください。これにより、Firebase コンソール内でユーザー数が減少する場合があります。
アナリティクス: Firebase User Segmentation Storage とは何ですか?
Firebase User Segmentation Storage は、作成したオーディエンス リストを保存し、オーディエンス リストを使用する他の Firebase サービス(Crashlytics、FCM、Predictions など)にターゲット情報を提供します。
アナリティクス: アプリと Google アナリティクスのリンクを解除した後、データが表示されなくなるのはなぜですか?
アナリティクス データは、Firebase プロジェクト内ではなく、Google アナリティクスのプロパティ内にあります。プロパティを削除するか、またはプロパティとのリンクを解除すると、プロジェクトとデータのリンクも解除されます。ただし、データは引き続きそのプロパティ内にあるため、いつでもプロジェクトに再リンクできます。
新しい Google アナリティクス アカウント(または新しいプロパティ)を作成すると、Firebase コンソールに空のアナリティクス ダッシュボードが用意されます。
アナリティクス: プロジェクトを新しい Google アナリティクスにアップグレードしようとするとエラーが発生します。なぜでしょうか?
アップグレード中に次のようなエラーが発生した場合:
The operation has failed (Reason: Requested entity already exists)
または
The operation has failed (Reason: Precondition check failed)
これは、プロジェクトと既存の Google アナリティクス プロパティがすでに関連付けられていることを意味します。Google アナリティクスのインターフェースを使用して、プロパティのリンク解除、削除、アップグレードを行うことができます。
それでも問題が解決しない場合は、REST API の removeAnalytics
メソッドを使用してリンクを解除し、addGoogleAnalytics
メソッドを使用して新しいプロパティをリンクします。
次に、別のプロパティにデータを移動できます。
アナリティクス: Google アナリティクスで定義したオーディエンスとイベントは、Firebase コンソールで利用できますか?
オーディエンスとユーザー プロパティは同期されます。セグメンテーションやクローズド型目標到達プロセスなどの一部の機能では、Google アナリティクスのインターフェースを使用する必要があります。Firebase コンソールのディープリンクを通じて、Google アナリティクスのインターフェースに直接アクセスできます。Firebase コンソールで行う変更作業はすべて Google アナリティクスでも実行でき、それらの変更内容は Firebase に反映されます。
iOS アプリのアナリティクス: 広告の帰属表示と IDFA 収集の機能を使用せずにアナリティクスをインストールすることはできますか?
はい。詳しくは、データの収集と使用方法を構成するのページをご覧ください。
App Indexing
App Indexing: Google 検索では、単一のアプリに対して複数の言語をインデックスに登録することはできますか?
Google 検索では、次の複数言語のケースをサポートしています。
- 関連ウェブサイトには、各言語に一意の URL が含まれています。また、各ウェブサイトの URL に対応するアプリの HTTP URL が 1 つあります。
- 関連ウェブサイトには、各言語に一意の URL が含まれていますが、アプリの HTTP URL は 1 つしかありません。アプリは、システム言語設定をもとに対象言語のコンテンツを正しく表示します。
- 関連ウェブサイトには、全言語(1 言語しかサポートしていない場合もあります)向けの URL が 1 つと、対応するアプリの URL が 1 つあります。ユーザーが特に指定していない限り、ウェブサイトとアプリケーションのコンテンツは同一言語で表示されます。
App Indexing: App Indexing では 1 つのアプリに対して複数のウェブサイトをサポートしていますか?
はい。各関連ウェブサイトが Android アプリ向けであることを、Google Play Console で確認してください。アプリの確認方法をご覧ください。
App Indexing: サイトマップは Search Console を使って追加する必要がありますか?
iOS ではサイトマップは不要です。Android では、アプリが HTTP URL をサポートしていればサイトマップは不要です。カスタム URL の場合、Search Console を介してサイトマップを追加する必要はありません。サイトマップは robots.txt
ファイルで参照でき、これらは Google 検索で使用されます。サイトマップ管理の詳細情報をご確認ください。Search Console を介してサイトマップを送信すると、送信されてインデックス登録された HTTP URL の統計情報を Search Console で確認できます。
Authentication
Firebase Authentication: 電話認証がサポートされている国はどこですか?
Firebase Authentication は、電話番号での確認を世界中でサポートしていますが、すべてのネットワークが確実に確認メッセージを配信するわけではありません。以下の国では配信率が高く、電話番号ログインが正しく機能すると考えられます。
国 | コード |
---|---|
AD | アンドラ |
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 | ドミニカ国 |
DO | ドミニカ共和国 |
DZ | アルジェリア |
EC | エクアドル |
EG | エジプト |
ES | スペイン |
ET | エチオピア |
FI | フィンランド |
FJ | フィジー |
FK | フォークランド諸島(マルビナス諸島) |
FM | ミクロネシア連邦 |
FO | フェロー諸島 |
FR | フランス |
GA | ガボン |
GB | 英国 |
GD | グレナダ |
GE | ジョージア |
GF | 仏領ギアナ |
GG | ガーンジー |
GH | ガーナ |
GI | ジブラルタル |
GL | グリーンランド |
GM | ガンビア |
GP | グアドループ |
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 | モントセラト |
MT | マルタ |
MU | モーリシャス |
MW | マラウイ |
MX | メキシコ |
MY | マレーシア |
MZ | モザンビーク |
NA | ナミビア |
NC | ニューカレドニア |
NE | ニジェール |
NF | ノーフォーク島 |
NG | ナイジェリア |
NI | ニカラグア |
NL | オランダ |
NO | ノルウェー |
NP | ネパール |
NZ | ニュージーランド |
OM | オマーン |
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 | ジンバブエ |
Cloud Functions
Cloud Functions ランタイムのサポート
Node.js 8 ランタイムが非推奨になったのはなぜですか?
2019 年 12 月 31 日に、Node.js 8 は Node.js Foundation によりサポート終了と指定されました。その時点で、Node.js Foundation は Node.js 8 のセキュリティ リリースの発行を終了しました。そのため、できるだけ早く Node.js 10 以降に更新することをおすすめします。
Node.js 8 サポートの削除後に Node.js 8 関数が残っているとどうなりますか?無期限に機能しますか?
いいえ、機能しません。Node.js 8 ランタイムへの関数のデプロイは、2020 年 12 月 15 日をもって Firebase CLI で無効になりました。デプロイ済みの関数の実行については、将来的に停止される予定です。Node.js 8 ランタイムにデプロイした関数がある場合は、Node.js 12 ランタイムにアップグレードすることをおすすめします。
Node.js 12 にアップグレードするにはどうすればよいですか?
- Blaze お支払いプランを利用していることを確認します。
- Firebase CLI バージョン 8.1.0 以降を使用していることを確認します。
- 関数の
package.json
のengines
フィールドを変更します。 - 必要に応じて、Firebase Local Emulator Suite を使用して変更をテストします。
- Firebase CLI v8.1.0 以降を使用して関数を再デプロイします。
関数が Node.js 12 ランタイムにデプロイされたことを確認するには、どうすればよいですか?
Firebase コンソールで関数のダッシュボードに移動し、ランタイムの列を確認します。
Firebase Extensions を使用しています。今回の変更の影響はありますか?
はい。拡張機能は Cloud Functions を使用するため、拡張機能のランタイムは Cloud Functions と同じスケジュールで更新する必要があります。
Firebase プロジェクトを Blaze お支払いプランにアップグレードし、プロジェクトにインストールされている各拡張機能の最新バージョンに更新することをおすすめします。プロジェクトの拡張機能は、Firebase コンソールまたは Firebase CLI からアップグレードできます。
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 | |
---|---|---|---|
ターゲット | 単一のデバイス | ||
トピック(天気など)に登録されたクライアント | |||
事前定義されたユーザー セグメント(アプリ、バージョン、言語)のクライアント | |||
特定の Analytics ユーザーのクライアント | |||
デバイス グループのクライアント | |||
クライアントからサーバーへのアップストリーム | |||
メッセージの種類 | 最大 2 KB の通知 | ||
最大 4 KB のデータ メッセージ | |||
配信 | 即時 | ||
将来のクライアント デバイスの現地時間 | |||
アナリティクス | 組み込みの Notifications アナリティクスのデータ収集および目標到達プロセス アナリティクス |
Cloud Messaging: Apple は APNs 用のレガシー バイナリ プロトコルの非推奨を発表しました。対応が必要なことはありますか?
いいえ。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 を使用することで、Firebase 向け 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 | |
---|---|---|---|
ターゲット | 単一のデバイス | ||
トピック(天気など)に登録されたクライアント | |||
事前定義されたユーザー セグメント(アプリ、バージョン、言語)のクライアント | |||
特定の Analytics ユーザーのクライアント | |||
デバイス グループのクライアント | |||
クライアントからサーバーへのアップストリーム | |||
メッセージの種類 | 最大 2 KB の通知 | ||
最大 4 KB のデータ メッセージ | |||
配信 | 即時 | ||
将来のクライアント デバイスの現地時間 | |||
アナリティクス | 組み込みの Notifications アナリティクスのデータ収集および目標到達プロセス アナリティクス |
Notifications Composer: Google Cloud Messaging(GCM)のデベロッパーが Notifications Composer を使用するにはどうすればよいですか?
Notifications Composer は、Firebase 向け Google アナリティクスのインサイトに基づいてすべてのユーザーがターゲット ユーザーに通知を送信できるようにする、設定不要のソリューションです。また Notifications Composer は、すべてのメッセージの目標到達プロセスを分析することで、通知の効果の簡単な評価を可能にしています。
GCM のデベロッパーの場合、Notifications Composer を使用するには、GCM SDK から FCM SDK にアップグレードする必要があります。Android アプリと iOS アプリの移行ガイドをご覧ください。
Cloud Storage
Cloud Storage: Cloud Storage を使用できないのはなぜですか?
Cloud Storage for Firebase は、App Engine の無料枠にデフォルトのバケットを作成します。そのため、クレジット カード番号の入力や Cloud 請求先アカウントの有効化を行うことなく、Firebase と Cloud Storage for Firebase をすばやく起動し、実行できます。また、Firebase と Google Cloud プロジェクトの間でデータを簡単に共有することもできます。
ただし、このバケットが作成できず、Cloud Storage for Firebase を使用できなくなる既知の事例が 2 つあります。
- App Engine マスター / スレーブ データストア アプリケーションがインストールされていた Google Cloud からインポートされたプロジェクト。
-
ドメインの接頭辞が付いたプロジェクト Google Cloud からインポートされたプロジェクト。例:
domain.com:project-1234
。
現在、この問題の回避策はありません。Firebase コンソールで新しいプロジェクトを作成し、そのプロジェクトで Cloud Storage for Firebase を有効にすることをおすすめします。
Cloud Storage: Cloud Storage を使用する Firebase プロジェクトに関連付けられた新しいサービス アカウント ID が表示されるのはなぜですか?
Firebase では、ユーザー認証情報を共有せずに、サービス アカウントを使用してサービスの操作と管理を行えます。Firebase プロジェクトを作成すると、プロジェクトで複数のサービス アカウントが用意されます。
2020 年 9 月 15 日より前に Cloud Storage を使用した場合、バケット管理のために使用される以前のサービス アカウント(firebase-storage@system.gserviceaccount.com
)が表示されることがあります。
2020 年 9 月 15 日以降は、Cloud Storage for Firebase バケットに新しいサービス アカウント service-<project number>@gcp-sa-firebasestorage.iam.gserviceaccount.com
が追加されます。
Firebase コンソールの [サービス アカウント] タブには、プロジェクトに関連付けられたすべてのサービス アカウントが表示されます。
新しいサービス アカウントの削除
新しいサービス アカウントを削除しないことを強くおすすめします。削除すると、今後の強化されたセキュリティ機能を活用できません。
ただし、必要に応じて API を無効にしたり、新しいサービス アカウントからアクセス権を削除したりできます。このアカウントを削除すると、アプリから Cloud Storage バケットへのアクセスがブロックされる可能性があります。
新しいサービス アカウントの追加
新しいサービス アカウントを削除または API を無効にした後で、これらを再度追加したい場合は、Google Cloud Console のサービス アカウントの作成と管理に記載されている手順に沿って、service-<project number>@gcp-sa-firebasestorage.iam.gserviceaccount.com
をプロジェクトのサービス アカウントのセットに追加します。
Crashlytics
Crashlytics のトラブルシューティングとよくある質問のページにアクセスすると、役立つヒントや、その他のよくある質問への回答をご覧いただけます。
Crash Reporting: アナリティクスでのクラッシュ レポートが、Crash Reporting よりも少ないのはなぜですか?
Crash Reporting では別々のバックグラウンド プロセスを作成して、クラッシュ情報をアップロードします。アプリが Android Application のクラスを拡張する場合、そのアプリでのマルチプロセスが安全であることを確かめる必要があります。これを怠ると、同時実行による問題が発生する可能性があります。アプリが Application オブジェクトを拡張すると、このオブジェクトは、マルチプロセス アプリ内のプロセスごとにインスタンス化されます。Crash Reporting をアプリに追加する際は、以下に注意してください。
- このオブジェクトの実装によりアウトオブプロセス状態(データベース、ファイル システム、共有設定など)にアクセスするか、マルチプロセス環境での安全な動作が確認されていない他のアクションを実行すると、同時実行の問題が発生する可能性があります。これは、Application オブジェクトの複数のインスタンスが同時に実行される可能性があるためです。
- 多くのサードパーティ製ライブラリがアウトオブプロセス状態を(ローカル データベースなどに)保持しており、これらが Application オブジェクトから初期化された場合、同様に同時実行の問題が発生する可能性があります。前述の説明に該当するアプリがあり、アプリで Crash Reporting を使用する予定がある場合は、Application ロジックをコンテンツ プロバイダ、または Android アクティビティに移行することを強くおすすめします。マルチプロセス環境での安全な動作が確認されていない Application ロジックは、アプリに想定外の影響を与える恐れがあります。
Crash Reporting は捕捉したエラーを、app_exception イベントとして Google アナリティクスに自動的にエクスポートします。現時点で Android では、Crash Reporting のエラー数とアナリティクスの app_exception イベント数が大きく異なる場合があります。
Dynamic Links
Dynamic Links: Android アプリが各ダイナミック リンクに 2 度アクセスするのはなぜですか?
getInvitation
API は、保存されたダイナミック リンクを消去して 2 度アクセスされないようにしています。必ず各ディープリンク アクティビティで autoLaunchDeepLink
パラメータを false
に設定してこの API を呼び出し、メインのアクティビティ以外でアクティビティがトリガーされた場合にこれを消去します。
Hosting
Hosting: Firebase コンソールの Hosting リリース履歴テーブルに、ローカル プロジェクトのファイル数よりも多いファイル数が表示されるのはなぜですか?
Firebase では Hosting サイトに関するメタデータを含むファイルが自動的に追加されます。これらのファイルは、リリースの合計ファイル数に含まれます。
Hosting: Firebase Hosting にデプロイできる最大のファイルサイズはどれくらいですか?
Hosting のサイズ上限は、ファイルあたり 2 GB です。
これよりも大きいファイルを保存するには Cloud Storage を使用することをおすすめします。Cloud Storage では、個々のオブジェクトの最大サイズはテラバイト範囲です。
Hosting: 1 つの Firebase プロジェクトに含めることができる Hosting サイトの数はどれくらいですか?
Firebase Hosting のマルチサイト機能では、プロジェクト 1 つあたりで最大 36 個のサイトをサポートします。
Performance Monitoring
Performance Monitoring のトラブルシューティングとよくある質問のページにアクセスすると、役立つヒントや、その他のよくある質問への回答をご覧いただけます。
Performance Monitoring: 作成できるカスタム URL パターンの数はどれくらいですか?
アプリ 1 個あたり合計 400 個までのカスタム URL パターンを作成でき、各アプリのドメイン 1 個あたり 100 個までのカスタム URL パターンを作成できます。
パフォーマンス モニタリング: パフォーマンス データがリアルタイムで表示されないのはなぜですか?
リアルタイム パフォーマンス データを確認するには、リアルタイム データ処理と互換性のあるバージョンの 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 でほぼリアルタイムのデータ処理が行われます。
Predictions
Predictions: Google アナリティクスをアプリに追加しました。いつからコンソールに予測が表示されるようになりますか?
予測はユーザーの行動に基づいて行われるため、利用可能な履歴が多ければ多いほど正確な結果になります。Firebase Predictions には少なくとも 2 週間分のデータが必要です。つまりトレーニングに使用するための 1 週間分のアクティビティ データと、それらのアクティビティがどのような結果(チャーンや支出など)につながったかを確認するための 1 週間分のデータです。最初の 2 週間が経過すると、Predictions はより長期間のシーケンスでユーザー アクティビティを観測するようになるため、通常は予測の品質が向上します。
Predictions: 新しいユーザーについて予測を行うにはどのくらい時間がかかりますか?
すでに Google アナリティクスによるインストルメンテーションが行われていて、ベースライン データでトレーニングされているアプリの場合、新しいユーザーがアプリの使用を開始した翌日から、そのユーザーに関する予測が行われます。
Realtime Database
Realtime Database: Realtime Database について 2016 年 9 月から 2017 年 3 月の間に平均より低い帯域幅が報告されたのはなぜですか?
帯域幅の計算には、通常、SSL 暗号化オーバーヘッド(OSI モデルのレイヤ 5 に基づく)が含まれています。しかし、2016 年 9 月に、帯域幅の報告で暗号化オーバーヘッドを無視するバグが導入されました。これにより、アカウントで報告された帯域幅と請求書が数か月間不自然に低くなった可能性があります。
2017 年 3 月下旬にバグの修正をリリースし、帯域幅の報告と請求を通常のレベルに戻しました。
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 経由でユーザーを介して接続してみてください。
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 のトラブルシューティング ページにアクセスすると、役立つヒントや、よくある質問への回答をご覧いただけます。