Información sobre Firebase para Android

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 Firebase Android BoM, 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 Firebase, 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.

Firebase Android BoM (Bill of Materials)

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

Cuando usas la Firebase BoM en tu app, la BoM extrae automáticamente las versiones de biblioteca individuales asignadas a la versión de 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 a esa versión de la BoM. Si necesitas comparar las versiones de la biblioteca asignadas a una versión de la BoM con otra versión de la BoM, 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 Firebase Android BoM para declarar dependencias en tu archivo Gradle (generalmente app/build.gradle) del módulo (nivel de app). Cuando uses la BoM, no debes especificar 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:33.6.0')

  // 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 Firebase Android BoM:

Compara versiones de la Firebase BoM

Módulos de bibliotecas de extensiones de Kotlin (KTX)

Los módulos de biblioteca de extensiones de Firebase para Kotlin (KTX) son complementos pequeños para los módulos de bibliotecas principales de Firebase y puedes usarlos para escribir código de Kotlin idiomático y atractivo.

Para usar un módulo de biblioteca de KTX en tu app, cambia tu dependencia para que incluya el sufijo -ktx. Cada módulo de KTX tiene automáticamente una dependencia en el módulo de biblioteca principal, 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:33.6.0')

  // Declare the main module
  implementation 'com.google.firebase:firebase-analytics'

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

Cada módulo de KTX proporciona diferentes extensiones sintácticas del módulo principal. Por ejemplo, el módulo de KTX para Analytics facilita el registro de eventos:

Antes (con el módulo principal)

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 el módulo 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 un módulo de KTX, excepto Firebase ML y App Indexing.

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

Módulos de funciones y Play Feature Delivery

A partir de mayo de 2021 (versión 28.0.0 de la Firebase BoM), 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 Firebase BoM) 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 básico, 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 productos como Dynamic Links o Firebase In-App Messaging, que dependen del evento first_open de Analytics, no detecten este evento si se usan en un módulo de funciones dinámicas.

  • Cuando uses Cloud Firestore y Authentication en conjunto, siempre debes incluirlos en el mismo módulo. Si esto 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