Android と Firebase のトラブルシューティングとよくある質問

このページでは、Firebase の使用時に発生する可能性のある Android 固有の問題に関するヒントとトラブルシューティングについて説明します。

その他の課題がある場合や、該当する問題が以下で見つからない場合は、メインの Firebase のよくある質問で、Firebase 全体またはプロダクト固有のよくある質問をご覧ください。

報告された問題とトラブルシューティングの最新リストについては、Firebase Android SDK GitHub リポジトリをご確認ください。Firebase Android SDK 関連の問題が見つかった場合は、このリポジトリにご報告ください。

SHA-1 情報は、Firebase AuthenticationGoogle ログインまたは電話番号ログインを使用する場合)と Firebase Dynamic Links で必要になります。こうした機能を使用しない場合、SHA-1 は不要です。

このエラーは、指定したパッケージ名と SHA-1 を持つ OAuth 2.0 クライアント ID が別の Firebase または Google Cloud プロジェクトに含まれている場合に発生します。このエラーの解決方法をご覧ください。

このエラーは通常、アプリで Google の Maven リポジトリへの参照が 1 つ以上存在していないことを意味します。Gradle 構成ファイルに Google の Maven リポジトリ(google())が組み込まれていることを確認してください。

  • プロジェクトで plugins 構文を使用している場合は、settings.gradle.kts ファイルまたは settings.gradle ファイルの plugins セクションに含めます。
  • プロジェクトで buildscript 構文を使用している場合は、プロジェクト レベルの build.gradle.kts ファイルまたは build.gradle ファイルの buildscript セクションと allprojects セクションの両方に含めます。

2021 年 5 月(Firebase BoM v28.0.0)、すべての Android ライブラリで Firebase の脱糖が無効になりました(リリースノートをご覧ください)。

この変更により、Android Gradle プラグイン(AGP)v4.2 以前を使用する Gradle ビルドでは、Java 8 サポートを有効にする必要があります。そうしないと、Firebase SDK を追加した際に Android プロジェクトで次のビルドエラーが発生します。

D8: Invoke-customs are only supported starting with Android O (--min-api 26)
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Error while dexing.
The dependency contains Java 8 bytecode. Please enable desugaring by adding the following to build.gradle
android {
    compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }
}
See https://developer.android.com/studio/write/java8-support.html for details.
Alternatively, increase the minSdkVersion to 26 or above.

このビルドエラーを修正するには、次の 2 つの方法があります。

  • エラー メッセージに示されている compileOptionsアプリレベルbuild.gradle.kts ファイルまたは build.gradle ファイルに追加します。
  • Android プロジェクトの minSdkVersion を 26 以上に設定します。

このエラーには 2 つの理由が考えられます。サポート メールアドレスを提供していなかった、または SHA 鍵がなかったことです。このエラーを修正するには、以下の条件をすべて満たすようにしてください。

Firebase には、次の Gradle プラグインがあります。

プラグイン名 Maven 座標 最新バージョン プラグイン ID
Google Play 開発者サービス プラグイン com.google.gms:google-services 4.4.2 com.google.gms.google-services
App Distribution プラグイン com.google.firebase:firebase-appdistribution-gradle 5.1.1 com.google.firebase.appdistribution
Crashlytics プラグイン com.google.firebase:firebase-crashlytics-gradle 3.0.3 com.google.firebase.crashlytics
Performance Monitoring プラグイン com.google.firebase:perf-plugin 1.4.2 com.google.firebase.firebase-perf

buildscript 構文を引き続き使用する Android プロジェクトに Firebase プラグインを追加する方法は次のとおりです。

  1. ルートレベル(プロジェクト レベル)の Gradle ファイル(<project>/build.gradle.kts または <project>/build.gradle)で、Maven 座標を使用して依存関係としてプラグインを追加します。

    KotlinGroovy
    buildscript {
    
        repositories {
          // Make sure that you have the following two repositories
          google()  // Google's Maven repository
          mavenCentral()  // Maven Central repository
        }
    
        dependencies {
          ...
    
          // Add the Maven coordinates and latest version of the plugin
          classpath ("PLUGIN_MAVEN_COORDINATES:PLUGIN_VERSION")
        }
    }
    
    allprojects {
      ...
    
      repositories {
        // Make sure that you have the following two repositories
        google()  // Google's Maven repository
        mavenCentral()  // Maven Central repository
      }
    }
    
    buildscript {
    
        repositories {
          // Make sure that you have the following two repositories
          google()  // Google's Maven repository
          mavenCentral()  // Maven Central repository
        }
    
        dependencies {
          ...
    
          // Add the Maven coordinates and latest version of the plugin
          classpath 'PLUGIN_MAVEN_COORDINATES:PLUGIN_VERSION'
        }
    }
    
    allprojects {
      ...
    
      repositories {
        // Make sure that you have the following two repositories
        google()  // Google's Maven repository
        mavenCentral()  // Maven Central repository
      }
    }
    
  2. モジュール(アプリレベル)の Gradle ファイル(通常は <project>/<app-module>/build.gradle.kts または <project>/<app-module>/build.gradle)で、プラグイン ID を使用してプラグインを追加します。

    KotlinGroovy
    plugins {
        id("com.android.application")
    
        // Add the ID of the plugin
        id("FIREBASE_PLUGIN_ID")
        ...
    }
    
    plugins {
        id 'com.android.application'
    
        // Add the ID of the plugin
        id 'FIREBASE_PLUGIN_ID'
        ...
    }