Pemecahan masalah & FAQ untuk Android dan Firebase

Halaman ini menawarkan tips dan pemecahan masalah untuk masalah khusus Android yang mungkin Anda alami saat menggunakan Firebase.

Ada kesulitan lain atau masalah yang Anda alami tidak dijelaskan di bawah ini? Pastikan Anda membaca FAQ Firebase utama untuk mengetahui lebih lanjut FAQ lintas Firebase atau khusus produk.

Anda juga dapat melihat repo GitHub Firebase Android SDK untuk mengetahui daftar masalah dan pemecahan masalah terbaru yang dilaporkan. Sebaiknya Anda juga melaporkan masalah terkait Firebase Android SDK di sana.

Informasi SHA-1 diperlukan oleh Firebase Authentication (saat menggunakan Login dengan Google atau Login dengan nomor telepon) dan Firebase Dynamic Links. Jika tidak menggunakan fitur tersebut, Anda tidak perlu menyediakan SHA-1.

Error ini terjadi jika kami mendeteksi ada project Firebase atau Google Cloud lain yang berisi client ID OAuth 2.0 dengan nama paket dan SHA-1 yang Anda tentukan. Pelajari cara mengatasi error ini.

Biasanya, error ini berarti bahwa aplikasi Anda tidak memiliki satu atau beberapa referensi ke repositori Maven Google. Pastikan untuk menyertakan repositori Maven Google (google()) dalam file Konfigurasi Gradle Anda.

  • Jika project Anda menggunakan sintaksis plugins, sertakan sintaksis dalam bagian plugins di file settings.gradle.kts atau settings.gradle.
  • Jika project Anda menggunakan sintaksis buildscript, sertakan sintaksis baik dalam bagian buildscript maupun allprojects dalam build.gradle.kts atau build.gradle level project Anda.

Pada Mei 2021 (Firebase BoM v28.0.0), Firebase menonaktifkan desugaring untuk semua library Android-nya (lihat catatan rilis).

Perubahan ini berarti bahwa build Gradle yang menggunakan plugin Android Gradle (AGP) v4.2 atau versi sebelumnya harus mengaktifkan dukungan Java 8. Jika tidak, saat menambahkan Firebase SDK, project Android ini akan mengalami kegagalan build berikut:

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.

Untuk memperbaiki kegagalan build ini, Anda dapat mengikuti salah satu dari dua opsi berikut:

  • Tambahkan compileOptions yang tercantum dari pesan error ke file build.gradle.kts atau build.gradle level aplikasi Anda.
  • Tingkatkan minSdkVersion untuk project Android Anda menjadi 26 atau lebih tinggi.

Ada dua kemungkinan alasan mengapa hal ini terjadi: Anda belum memberikan email dukungan, atau kunci SHA hilang. Untuk memperbaiki error ini, pastikan semua kondisi berikut benar:

Firebase memiliki plugin Gradle berikut:

Nama plugin Koordinat Maven Versi terbaru ID Plugin
Plugin layanan Google Play com.google.gms:google-services 4.4.2 com.google.gms.google-services
Plugin App Distribution com.google.firebase:firebase-appdistribution-gradle 5.1.1 com.google.firebase.appdistribution
Plugin Crashlytics com.google.firebase:firebase-crashlytics-gradle 3.0.3 com.google.firebase.crashlytics
Plugin Performance Monitoring com.google.firebase:perf-plugin 1.4.2 com.google.firebase.firebase-perf

Berikut ini cara menambahkan plugin Firebase ke project Android yang masih menggunakan sintaksis buildscript:

  1. Dalam file Gradle level root (level project) (<project>/build.gradle.kts atau <project>/build.gradle), tambahkan plugin sebagai dependensi yang menggunakan koordinat 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. Dalam file Gradle modul (level aplikasi) (biasanya <project>/<app-module>/build.gradle.kts atau <project>/<app-module>/build.gradle), tambahkan plugin menggunakan ID plugin:

    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'
        ...
    }