Dépannage et amp; FAQ pour Android et Firebase

Cette page propose des conseils et un dépannage pour les problèmes spécifiques à Android que vous pourriez rencontrer lors de l'utilisation de Firebase.

Vous avez d'autres difficultés ou votre problème ne figure pas ci-dessous ? Assurez-vous de consulter la FAQ principale de Firebase pour plus de FAQ pan-Firebase ou spécifiques au produit.

Vous pouvez également consulter le dépôt GitHub du SDK Android Firebase pour une liste à jour des problèmes signalés et des dépannages. Nous vous encourageons également à y signaler vos propres problèmes liés au SDK Firebase Android !

Les informations SHA-1 sont requises par l'authentification Firebase (lors de l'utilisation de la connexion Google ou de la connexion par numéro de téléphone ) et des liens dynamiques Firebase . Si vous n'utilisez pas ces fonctionnalités, vous n'êtes pas obligé de fournir un SHA-1.

Cette erreur se produit si nous détectons qu'un autre projet Firebase ou Google Cloud contient un ID client OAuth 2.0 avec le nom du package et SHA-1 que vous avez spécifiés. Découvrez comment résoudre cette erreur .

Cette erreur signifie généralement qu'il manque une ou plusieurs références au référentiel Maven de Google dans votre application. Assurez-vous d'inclure le référentiel Maven de Google ( google() ) dans votre fichier de configuration Gradle.

  • Si votre projet utilise la syntaxe plugins , incluez-la dans la section plugins de votre fichier settings.gradle.kts ou settings.gradle .
  • Si votre projet utilise la syntaxe buildscript , incluez-la dans les sections buildscript et allprojects de votre fichier build.gradle.kts ou build.gradle au niveau du projet.

En mai 2021 (Firebase BoM v28.0.0), Firebase a désactivé la désucération pour toutes ses bibliothèques Android (voir note de version ).

Ce changement signifie que les versions Gradle qui utilisent le plug-in Android Gradle (AGP) v4.2 ou une version antérieure doivent activer la prise en charge de Java 8. Sinon, lors de l'ajout d'un SDK Firebase, ces projets Android obtiennent l'échec de construction suivant :

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.

Pour corriger cet échec de build, vous pouvez suivre l'une des deux options suivantes :

  • Ajoutez les compileOptions répertoriées dans le message d'erreur à votre fichier build.gradle.kts ou build.gradle au niveau de l'application .
  • Augmentez la minSdkVersion de votre projet Android à 26 ou plus.

Il y a deux raisons possibles pour lesquelles cela se produit : vous n'avez pas fourni d'e-mail d'assistance ou il vous manque une clé SHA. Afin de corriger cette erreur, assurez-vous que toutes ces conditions sont remplies :

Firebase propose les plugins Gradle suivants :

Nom du plugin Coordonnées Maven Dernière version ID du plugin
Plugin des services Google Play com.google.gms:google-services 4.4.1 com.google.gms.google-services
Plugin de distribution d'applications com.google.firebase:firebase-appdistribution-gradle 4.2.0 com.google.firebase.appdistribution
Plugin Crashlytics com.google.firebase:firebase-crashlytics-gradle 2.9.9 com.google.firebase.crashlytics
Plugin de surveillance des performances com.google.firebase:perf-plugin 1.4.2 com.google.firebase.firebase-perf

Voici comment ajouter un plugin Firebase à un projet Android qui utilise toujours la syntaxe buildscript :

  1. Dans votre fichier Gradle au niveau racine (au niveau du projet) ( <project>/build.gradle.kts ou <project>/build.gradle ), ajoutez le plugin en tant que dépendance en utilisant ses coordonnées Maven :

    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. Dans le fichier Gradle de votre module (au niveau de l'application) (généralement <project>/<app-module>/build.gradle.kts ou <project>/<app-module>/build.gradle ), ajoutez le plugin en utilisant son ID de plugin. :

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