Rozwiązywanie problemów Najczęstsze pytania dotyczące Androida i Firebase

Na tej stronie znajdziesz porady i sposoby rozwiązywania problemów z Androidem, które mogą wystąpić podczas korzystania z Firebase.

Masz inne problemy lub nie widzisz swojego problemu w poniższej liście? Aby dowiedzieć się więcej o Firebase lub poszczególnych usługach, zapoznaj się z najczęstszymi pytaniami dotyczącymi Firebase.

Aktualną listę zgłoszonych problemów i sposobów ich rozwiązania znajdziesz też w repozytorium GitHub pakietu SDK Firebase na Androida. Zachęcamy też do zgłaszania tam problemów związanych z pakietem SDK Firebase na Androida.

Informacje SHA-1 są wymagane przez Firebase Authentication (w przypadku korzystania z logowania przez Google lub logowania za pomocą numeru telefonu) i Firebase Dynamic Links. Jeśli nie korzystasz z tych funkcji, nie musisz podawać wartości SHA-1.

Ten błąd występuje, gdy wykryjemy, że inny projekt Firebase lub Google Cloud zawiera identyfikator klienta OAuth 2.0 z podaną przez Ciebie nazwą pakietu i certyfikatem SHA-1. Dowiedz się, jak naprawić ten błąd.

Ten błąd zwykle oznacza, że w aplikacji brakuje co najmniej jednego odwołania do repozytorium Maven Google. Pamiętaj, aby uwzględnić repozytorium Maven firmy Google (google()) w pliku konfiguracyjnym Gradle.

  • Jeśli Twój projekt używa składni plugins, umieść ją w sekcji plugins w pliku settings.gradle.kts lub settings.gradle.
  • Jeśli Twój projekt używa składni buildscript, uwzględnij ją w sekcjach buildscriptallprojects pliku build.gradle.kts lub build.gradle na poziomie projektu.

W maju 2021 r. (Firebase BoM w wersji 28.0.0) Firebase wyłączyła desugaring we wszystkich swoich bibliotekach na Androida (patrz informacje o wersji).

Ta zmiana oznacza, że kompilacje Gradle, które korzystają z wtyczki Androida Gradle (AGP) w wersji 4.2 lub starszej, muszą mieć włączone wsparcie dla Javy 8. W przeciwnym razie podczas dodawania pakietu SDK Firebase te projekty na Androida będą miały następujący błąd kompilacji:

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.

Aby rozwiązać ten problem, możesz wykonać jedną z tych czynności:

  • Dodaj wymienione w komunikacie o błędzie wartości compileOptions do pliku build.gradle.kts lub build.gradle na poziomie aplikacji.
  • Zwiększ wartość minSdkVersion w projekcie na Androida do 26 lub wyższej.

Może się tak zdarzyć z 2 przyczyn: nie podano adresu e-mail pomocy lub brakuje klucza SHA. Aby naprawić ten błąd, sprawdź, czy wszystkie te warunki są spełnione:

Firebase ma te wtyczki Gradle:

Nazwa wtyczki Współrzędne Maven Najnowsza wersja Identyfikator wtyczki
Wtyczka Usługi Google Play com.google.gms:google-services 4.4.2 com.google.gms.google-services
Wtyczka App Distribution com.google.firebase:firebase-appdistribution-gradle 5.1.1 com.google.firebase.appdistribution
Wtyczka Crashlytics com.google.firebase:firebase-crashlytics-gradle 3.0.3 com.google.firebase.crashlytics
Wtyczka Performance Monitoring com.google.firebase:perf-plugin 1.4.2 com.google.firebase.firebase-perf

Aby dodać wtyczkę Firebase do projektu na Androida, który nadal używa składni buildscript:

  1. W pliku Gradle na poziomie katalogu głównego (na poziomie projektu) (<project>/build.gradle.kts lub <project>/build.gradle) dodaj wtyczkę jako zależność, używając jej współrzędnych 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. W pliku Gradle modułu (na poziomie aplikacji) (zazwyczaj <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle) dodaj wtyczkę, używając jej identyfikatora:

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