Más información sobre Android y Firebase

A medida que desarrollas tu proyecto de Android con Firebase, es posible que encuentres conceptos que no conoces o son específicos de Firebase. Esta página tiene como objetivo responder esas preguntas o dirigirte a recursos para obtener más información.

Si tienes preguntas sobre un tema que no se aborda en esta página, no dudes en visitar una de nuestras comunidades en línea. Además, actualizaremos esta página con temas nuevos de forma periódica. Vuelve a consultarla para ver si agregamos el tema sobre el que deseas aprender.

Complemento de Firebase Assistant para Android Studio

Firebase Assistant es un complemento de Android Studio que registra tu app para Android con un proyecto de Firebase y agrega los archivos de configuración, los complementos y las dependencias de Firebase necesarios al proyecto de Android, todo desde Android Studio.

Sigue las instrucciones de la página de introducción de Android para usar Firebase Assistant. Asegúrate de usar las versiones más actualizadas de Android Studio y Firebase Assistant (ve a Archivo > Buscar actualizaciones).

Cuando seleccionas productos específicos de Firebase para agregar a tu app, Firebase Assistant declara automáticamente las dependencias requeridas en tu archivo app/build.gradle. Sin embargo, para usar funciones de Firebase que superen las capacidades actuales de Firebase Assistant, recomendamos que realices algunos cambios manuales en estas dependencias:

  • Si deseas usar la BoM de Firebase para Android, actualiza las dependencias en el archivo Gradle (generalmente, app/build.gradle) del módulo (nivel de app) para importar la plataforma BoM. Además, debes quitar las versiones de cada línea de dependencia de biblioteca de Firebase.

  • Si deseas usar una biblioteca de extensiones de Kotlin, debes modificar la línea de dependencia agregada a tu archivo Gradle (generalmente, app/build.gradle) del módulo (nivel de app) para usar la versión ktx de la biblioteca de Firebase.

Servicios de Google: archivo de configuración y complemento

Como parte de agregar Firebase a tu proyecto de Android, debes agregar el complemento de google-services y un archivo de configuración google-services.json a tu proyecto.

Si agregas Firebase a tu proyecto de Android mediante Firebase console, la API de REST de Management o Firebase CLI, debes agregar manualmente el complemento y el archivo de configuración a tu proyecto. Sin embargo, si usas Firebase Assistant, estas tareas se realizan automáticamente durante la configuración.

Consulta la documentación de Android para obtener información sobre cómo funcionan juntos el complemento de servicios de Google y el archivo de configuración.

BoM (lista de materiales) de Firebase para Android

La BoM (lista de materiales) de Firebase para Android te permite administrar todas las versiones de tus bibliotecas de Firebase con solo especificar una versión, la versión de la BoM.

Cuando usas la BoM de Firebase en tu app, la BoM extrae automáticamente las versiones de biblioteca individuales asignadas a la versión de la BoM. Todas las versiones de biblioteca individuales serán compatibles. Cuando actualizas la versión de la BoM en tu app, todas las bibliotecas de Firebase que uses en la app se actualizarán a las versiones asignadas a esa versión de la BoM.

Para saber qué versiones de la biblioteca de Firebase se asignan a una versión específica de la BoM, consulta las notas de la versión correspondientes. Si necesitas comparar las versiones de la biblioteca según la versión de la BoM a la que están asignadas, usa el widget de comparación que aparece más abajo.

Obtén más información sobre la compatibilidad de Gradle con las plataformas BoM.

A continuación, se muestra cómo usar la BoM de Firebase para Android a fin de declarar dependencias en tu archivo Gradle (generalmente app/build.gradle) del módulo (nivel de app). Cuando se usa la BoM, no se especifican versiones de biblioteca individuales en las líneas de dependencia.

dependencies {
  // Import the BoM for the Firebase platform
  implementation platform('com.google.firebase:firebase-bom:32.3.1')

  // Declare the dependencies for the desired Firebase products without specifying versions
  // For example, declare the dependencies for Firebase Authentication and Cloud Firestore
  implementation 'com.google.firebase:firebase-auth'
  implementation 'com.google.firebase:firebase-firestore'
}

Estas son algunas preguntas frecuentes sobre el uso de la BoM de Firebase para Android:

Compara las versiones de la BoM de Firebase

Bibliotecas de extensiones de Kotlin (KTX)

Las bibliotecas de extensiones de Firebase para Kotlin (KTX) son pequeños complementos para los SDK de Firebase básicos que te permiten escribir un código Kotlin idiomático y atractivo.

Para usar una biblioteca de KTX en tu app, cambia tu dependencia a fin de incluir el sufijo -ktx. Cada biblioteca de KTX tiene automáticamente una dependencia en la biblioteca base, por lo que no es necesario incluir ambas dependencias en la app.

dependencies {
  // Import the BoM for the Firebase platform (learn more)
  implementation platform('com.google.firebase:firebase-bom:32.3.1')

  // Declare the base library
  implementation 'com.google.firebase:firebase-analytics'

  // Declare the KTX library instead (which automatically has a dependency on the base library)
  implementation 'com.google.firebase:firebase-analytics-ktx'
}

Cada biblioteca de KTX proporciona diferentes extensiones sintácticas de la biblioteca base. Por ejemplo, la biblioteca de Analytics KTX simplifica los registros de los eventos:

Antes (con la biblioteca base)

val analytics = FirebaseAnalytics.getInstance();
val bundle = Bundle();
bundle.putString(FirebaseAnalytics.Param.ITEM_ID, id);
bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, name);
bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "image");
analytics.logEvent(FirebaseAnalytics.Event.SELECT_ITEM, bundle);

Después (con la biblioteca de KTX)

firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_ITEM) {
    param(FirebaseAnalytics.Param.ITEM_ID, id)
    param(FirebaseAnalytics.Param.ITEM_NAME, name)
    param(FirebaseAnalytics.Param.CONTENT_TYPE, "image")
}

Todos los productos de Firebase ofrecen una biblioteca de KTX, excepto el AA de Firebase y App Indexing.

Si aún no lo has hecho, consulta los documentos de referencia de la API para las bibliotecas de KTX.

Módulos de funciones y Play Feature Delivery

A partir de mayo de 2021 (versión 28.0.0 de la BoM de Firebase), los SDK de Firebase Android pueden usarse en módulos de funciones dinámicas que se instalan por separado del módulo de aplicación base.

Para habilitar la compatibilidad con los módulos de funciones dinámicas, agrega la siguiente dependencia al archivo build.gradle del módulo base:

dependencies {
  implementation 'com.google.firebase:firebase-dynamic-module-support:16.0.0-beta03'
}

Ahora que agregaste compatibilidad con el módulo dinámico, puedes agregar dependencias del SDK de Firebase (con o sin la BoM de Firebase) a los módulos de funciones de tu app y usarlos como lo harías normalmente.

Por ejemplo, si tu aplicación usa Realtime Database para potenciar una función específica en tiempo real, puedes agregar la dependencia firebase-database al build.gradle del módulo de la función en vez del módulo base, lo cual reducirá el tamaño de descarga para la mayoría de los usuarios.

Ten en cuenta las siguientes advertencias cuando uses los SDK de Firebase en los módulos de funciones:

  • Es posible que algunos productos, como Dynamic Links o Firebase In‑App Messaging, que dependen del evento first_open de Analytics, no lo detecten si se usan en el módulo de una función dinámica.

  • Cuando uses Cloud Firestore y Authentication en conjunto, siempre debes incluirlos en el mismo módulo. Si no es posible, asegúrate de que Authentication se cargue antes que Cloud Firestore. De lo contrario, algunas operaciones de Cloud Firestore pueden tener un estado de autenticación incorrecto.

  • Cuando usas firebase-crashlytics-ndk como dependencia de un módulo de funciones dinámicas, debes establecer la propiedad unstrippedNativeLibsDir en el archivo build.gradle de la app, como se describe en la documentación del NDK de Crashlytics.

Para obtener más información sobre los módulos de funciones y Play Feature Delivery, consulta el artículo Descripción general de Play Feature Delivery.

Comparación entre el complemento de Gradle para los servicios de Google, los Servicios de Google Play y Google Play Store

Numerosos componentes del ecosistema de Google, Firebase y Android tienen convenciones de nombres similares. A continuación, se incluye una explicación breve de cada una:

Complemento de Gradle para los servicios de Google
Un complemento de Gradle (com.google.gms.google-services) que se ejecuta en el tiempo de compilación para garantizar que tu app tenga la configuración correcta para acceder a las APIs de Firebase y Google.
A pesar de su nombre, este complemento no tiene relación con los Servicios de Google Play (consulta la entrada siguiente) y no afecta las capacidades de tu app en el tiempo de ejecución.
Este complemento también procesa el archivo google-services.json que agregas a la app como parte de la configuración de Firebase. Obtén más información sobre el complemento de Gradle para los servicios de Google.
Servicios de Google Play
Un servicio en segundo plano invisible que se ejecuta en un dispositivo Android y proporciona varias APIs comunes de Google (como Google Maps y Acceso con Google) para apps en el dispositivo.
Mediante la centralización de estas APIs comunes en un solo servicio, reduce el tamaño de otras aplicaciones y permite que un dispositivo reciba actualizaciones de seguridad automáticas y mejoras de funciones sin una actualización del SO. Obtén más información sobre los Servicios de Google Play.
Google Play Store
Una tienda para descargar apps, películas, libros y mucho más en un dispositivo Android.
Como desarrollador, tú administras la distribución, las versiones, etc. de tu app a través de Google Play Console. Si un dispositivo tiene Google Play Store, también se ejecutan en él los Servicios de Google Play (consulta la entrada anterior). Obtén más información sobre Google Play Store para desarrolladores.
Servicios de juego de Google Play
Un conjunto de APIs para desarrolladores de juegos para dispositivos móviles.
Obtén más información sobre los Servicios de juego de Google Play y cómo integrar Firebase a tu proyecto de Servicios de juego de Google Play.

Recursos de código abierto para los SDK de Firebase Android

Firebase admite el desarrollo de código abierto, y motivamos las contribuciones y los comentarios de la comunidad.

SDK de Firebase Android

La mayoría de los SDK de Firebase Android se desarrollan como bibliotecas de código abierto en nuestro repositorio público de Firebase en GitHub. Estamos trabajando para trasladar las bibliotecas de Firebase de desarrollo privado a nuestro GitHub público.

Muestras de inicio rápido

Firebase conserva una colección de muestras de inicio rápido para la mayoría de las APIs de Firebase en Android. Consulta estas muestras en nuestro repositorio de muestras de inicio rápido de Firebase en GitHub.

Puedes abrir cada muestra como un proyecto de Android Studio y, luego, ejecutarlas en un dispositivo móvil o en un dispositivo virtual (AVD). También puedes usarlas como código de ejemplo para usar los SDK de Firebase.

Otros temas de interés