初期化オプションのトラブルシューティング

有効な Firebase オプションのセットを使用せずにアプリケーションを初期化すると、アプリケーションの新規ユーザーに深刻な問題が発生することがあります。

Firebase オプションは、Firebase サーバー API と通信したり、クライアント データを Firebase プロジェクトと Firebase アプリケーションに関連付けたりするためにサービスで必要なパラメータのセットです。Firebase サービスは、有効な Firebase オプションが、Firebase の初期化中に作成された Firebase コア/共通ライブラリから利用できることを前提としています。

Firebase サービスが適性に機能するために必要な Firebase オプションは、サービスに応じて異なりますが、すべての Firebase サービスには以下の Firebase オプションが必要です。

  • API キー - 注: これは FCM サーバーキーではありませんFCM サーバーキーをご覧ください。
    値の例: AIzaSyDOCAbC123dEf456GhI789jKl012-MnO
  • プロジェクト ID - 値の例: myapp-project-123
  • アプリケーション ID(「AppID」): 一意のアプリ識別子。形式はプラットフォームによって異なります。
    • Android : mobilesdk_app_id - 注: これは Android パッケージ名ではありません
      値の例: 1:1234567890:android:321abc456def7890
    • iOS+ : GOOGLE_APP_ID - 注: これは Apple バンドル ID ではありません
      値の例: 1:1234567890:ios:321abc456def7890

Android アプリのトラブルシューティング

セキュリティ強化のため、Firebase SDK は 2 月 27 日に更新されました。この日以降は Firebase インスタンス ID サービスが Firebase Installations API の依存関係に置き換えられます。

Firebase インストールでは、クライアント データを Firebase プロジェクトに関連付けるために、Firebase の必須オプションである API キー、プロジェクト ID、アプリケーション ID が存在し有効である必要があります。詳細については、FirebaseOptions をご覧ください。

Firebase インスタンス ID(IID)を使用する Firebase Cloud Messaging(FCM)

アプリの新規ユーザーに対し FCM の問題が発生した場合は、必須の Firebase オプションを使用せずに Firebase を初期化している可能性があります。

アプリケーションで不完全またはエラーのある google-services.json 構成ファイルが使用されている可能性があります。あるいは、必要な Firebase オプションがすべて揃っていない状態でアプリが Firebase をプログラムにより初期化しています。

その結果、Firebase Cloud Messaging などの Firebase サービスが最新の Firebase SDK でリリースされた後に、アプリをインストールしたエンドユーザーの場合、Firebase サービスの誤動作が発生します。また、Firebase に対するリクエストが繰り返し失敗していることが原因で、アプリのエンドユーザー エクスペリエンスが低下する可能性があります。

必要なご対応

アプリケーションに対する Firebase サービスの誤動作を修正するには:

  1. アプリケーションを更新します。このため、プロジェクトの有効な API キー、有効なプロジェクト ID、有効なアプリケーション ID(mobilesdk_app_id または「アプリ ID」)を指定して、Firebase を初期化します。
    • Firebase 構成ファイルを使用したデフォルトの初期化プロセス: Firebase コンソールから google-services.json 構成ファイルをダウンロードし、アプリの既存のファイルをこのダウンロードしたファイルに置き換えます。
    • FirebaseOptions オブジェクトを使用したプログラムによる初期化: Firebase コンソールから google-services.json 構成ファイルをダウンロードして、API キー、プロジェクト ID、アプリケーション ID を検索します。アプリの FirebaseOptions オブジェクトでこれらの値を更新します。
  2. アプリの新しいバージョンを Play ストアにリリースします。

Apple アプリのトラブルシューティング

セキュリティ強化のため、Firebase SDK は 1 月 14 日に更新されました。この日以降は Firebase インスタンス ID サービスが Firebase Installations API の依存関係に置き換えられます。

Firebase インストールでは、クライアント データを Firebase プロジェクトに関連付けるために、Firebase の必須オプションである API キー、プロジェクト ID、アプリケーション ID が存在し有効である必要があります。詳細については、FIROptions をご覧ください。

Firebase インスタンス ID(IID)を使用する Firebase Cloud Messaging(FCM)

アプリの新規ユーザーに対し FCM の問題が発生した場合は、必須の Firebase オプションを使用せずに Firebase を初期化している可能性があります。

アプリケーションで不完全または無効な GoogleService-Info.plist 構成ファイルが使用されている可能性があります。あるいは、必要な Firebase オプションがすべて揃っていない状態でアプリが Firebase をプログラムにより初期化しています。

その結果、Firebase Cloud Messaging などの Firebase サービスが最新の Firebase SDK でリリースされた後に、アプリをインストールしたエンドユーザーの場合、Firebase サービスの誤動作が発生します。また、Firebase に対するリクエストが繰り返し失敗していることが原因で、アプリのエンドユーザー エクスペリエンスが低下する可能性があります。

必要なご対応

アプリケーションに対する Firebase サービスの誤動作を修正するには:

  1. アプリケーションを更新します。このため、プロジェクトの有効な API キー、有効なプロジェクト ID、有効なアプリケーション ID(GOOGLE_APP_ID または「アプリ ID」)を指定して、Firebase を初期化します。
    1. Firebase 構成ファイルを使用したデフォルトの初期化プロセス: Firebase コンソールから GoogleService-Info.plist 構成ファイルをダウンロードして、アプリの既存のファイルを置き換えます。
    2. FIROptions オブジェクトを使用したプログラムによる初期化: Firebase コンソールから GoogleService-Info.plist 構成ファイルをダウンロードして、API キー、プロジェクト ID、アプリケーション ID を検索します。アプリの FIROptions オブジェクトでこれらの値を更新します。
  2. アプリの新しいバージョンをアプリストアにリリースします。

FCM サーバーキー

アプリで Cloud API キーではなく FCM サーバーキーを使用している場合、同じ FCM サーバーキーを使用してプッシュ通知を FCM 経由で送信するときに、これが原因でセキュリティの脆弱性が生じる可能性があります。この場合、サーバーが FCM への送信リクエストを認証する方法を変更することを強くおすすめします。

FCM サーバーキー(Firebase / Cloud API キーとは異なるキー)をアプリケーションに含めないでください。FCM サーバーキーが悪用され、プロジェクトの名前でプッシュ通知が送信されることがあります。