Preguntas frecuentes y solución de problemas de Android y Firebase

En esta página, se ofrecen sugerencias y solución de problemas específicos de Android que puedes encontrar cuando usas Firebase.

¿Tienes otras dificultades o tu problema no se describe en esta página? Asegúrate de consultar las Preguntas frecuentes principales de Firebase para obtener más información general o específica sobre Firebase.

También puedes consultar el repositorio de GitHub del SDK de Firebase Android para obtener una lista actualizada de los problemas informados y la solución de problemas. Te recomendamos que también presentes tus propios problemas relacionados con el SDK de Firebase Android.

Firebase Authentication (cuando se usa el Acceso con Google o el acceso con número de teléfono) y Firebase Dynamic Links requieren información de SHA-1. Si no usas estas funciones, no necesitas proporcionar una clave SHA-1.

Este error aparece si detectamos que otro proyecto de Firebase o Google Cloud contiene un ID de cliente de OAuth 2.0 con el nombre de paquete y la clave SHA-1 que especificaste. Obtén más información para resolver este error.

Por lo general, este error significa que a tu app le faltan una o más referencias al repositorio Maven de Google. Asegúrate de incluir el repositorio de Maven de Google (google()) en el archivo de configuración de Gradle.

  • Si tu proyecto usa la sintaxis plugins, inclúyela en la sección plugins del archivo settings.gradle.kts o settings.gradle.
  • Si tu proyecto usa la sintaxis buildscript, inclúyela en las secciones buildscript y allprojects en el archivo build.gradle.kts o build.gradle a nivel de proyecto.

En mayo de 2021 (Firebase BoM v28.0.0), Firebase inhabilitó la expansión de sintaxis para todas sus bibliotecas de Android (consulta las notas de la versión).

Este cambio significa que en las compilaciones de Gradle que usan la versión 4.2 o versiones anteriores del complemento de Android para Gradle (AGP) se debe habilitar la compatibilidad con Java 8. De lo contrario, cuando agregues un SDK de Firebase, estos proyectos de Android tendrán la siguiente falla de compilación:

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.

Para solucionar esta falla de compilación, puedes seguir una de estas dos opciones:

  • Agrega las compileOptions que se indican en el mensaje de error al archivo build.gradle.kts o build.gradle a nivel de la app.
  • Aumenta la minSdkVersion de tu proyecto de Android a 26 o una versión posterior.

Esto podría ocurrir por dos motivos: no proporcionaste un correo electrónico de asistencia o te falta una clave SHA. Para resolver este error, asegúrate de que todas estas condiciones sean verdaderas:

Firebase tiene los siguientes complementos de Gradle:

Nombre del complemento Coordenadas de Maven Última versión ID del complemento
Complemento de Servicios de Google Play com.google.gms:google-services 4.4.2 com.google.gms.google-services
Complemento de App Distribution com.google.firebase:firebase-appdistribution-gradle 5.1.1 com.google.firebase.appdistribution
Complemento de Crashlytics com.google.firebase:firebase-crashlytics-gradle 3.0.3 com.google.firebase.crashlytics
Complemento de Performance Monitoring com.google.firebase:perf-plugin 1.4.2 com.google.firebase.firebase-perf

A continuación, se muestra cómo agregar un complemento de Firebase a un proyecto de Android que aún usa la sintaxis buildscript:

  1. En el archivo de Gradle (<project>/build.gradle.kts o <project>/build.gradle) de nivel de raíz (nivel de proyecto), agrega el complemento como una dependencia mediante las coordenadas de 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. En el archivo de Gradle (generalmente <project>/<app-module>/build.gradle.kts o <project>/<app-module>/build.gradle) de tu módulo (a nivel de app), agrega el complemento con su ID de complemento:

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