Para comenzar con FCM, desarrolle el caso de uso más simple: enviar un mensaje de notificación de prueba desde el redactor de notificaciones a un dispositivo de desarrollo cuando la aplicación está en segundo plano en el dispositivo. Esta página enumera todos los pasos para lograr esto, desde la configuración hasta la verificación; puede cubrir los pasos que ya completó si ha configurado una aplicación cliente de Android para FCM.
Configurar el SDK
Esta sección cubre las tareas que puede haber completado si ya habilitó otras funciones de Firebase para su aplicación.
Antes de que empieces
Instale o actualice Android Studio a su última versión.
Asegúrese de que su proyecto cumpla con estos requisitos:
- Se dirige al nivel API 19 (KitKat) o superior
- Utiliza Android 4.4 o superior
- Utiliza Jetpack (AndroidX) , que incluye cumplir con estos requisitos de versión:
-
com.android.tools.build:gradle
v7.3.0 o posterior -
compileSdkVersion
28 o posterior
-
Configure un dispositivo físico o use un emulador para ejecutar su aplicación.
Tenga en cuenta que los SDK de Firebase que dependen de los servicios de Google Play requieren que el dispositivo o el emulador tenga instalados los servicios de Google Play.Inicie sesión en Firebase con su cuenta de Google.
Si aún no tienes un proyecto de Android y solo quieres probar un producto de Firebase, puedes descargar uno de nuestros ejemplos de inicio rápido .
Crear un proyecto de Firebase
Antes de poder agregar Firebase a su aplicación de Android, debe crear un proyecto de Firebase para conectarse a su aplicación de Android. Visita Comprender los proyectos de Firebase para obtener más información sobre los proyectos de Firebase.
Registra tu aplicación con Firebase
Para usar Firebase en su aplicación de Android, debe registrar su aplicación con su proyecto de Firebase. Registrar su aplicación a menudo se denomina "agregar" su aplicación a su proyecto.
Vaya a la consola de Firebase .
En el centro de la página de descripción general del proyecto, haga clic en el ícono de Android (
) o Agregar aplicación para iniciar el flujo de trabajo de configuración.Ingrese el nombre del paquete de su aplicación en el campo de nombre del paquete de Android .
Un nombre de paquete identifica de forma única su aplicación en el dispositivo y en Google Play Store.
El nombre de un paquete suele denominarse ID de aplicación .
Busque el nombre del paquete de su aplicación en el archivo Gradle de su módulo (nivel de aplicación), generalmente
app/build.gradle
(nombre de paquete de ejemplo:com.yourcompany.yourproject
).Tenga en cuenta que el valor del nombre del paquete distingue entre mayúsculas y minúsculas y no se puede cambiar para esta aplicación de Firebase para Android después de registrarla en su proyecto de Firebase.
(Opcional) Ingrese otra información de la aplicación: apodo de la aplicación y certificado de firma de depuración SHA-1 .
Apodo de la aplicación : un identificador interno y conveniente que solo usted puede ver en Firebase console.
Certificado de firma de depuración SHA-1 : la autenticación de Firebase (cuando se utiliza el inicio de sesión de Google o el inicio de sesión con número de teléfono ) y los enlaces dinámicos de Firebase requieren un hash SHA-1 .
Haga clic en Registrar aplicación .
Agregar un archivo de configuración de Firebase
Descargue y luego agregue el archivo de configuración de Firebase para Android (
) a su aplicación:google-services.json Haga clic en Descargar google-services.json para obtener su archivo de configuración de Firebase Android.
Mueva su archivo de configuración al directorio raíz del módulo (nivel de aplicación) de su aplicación.
El archivo de configuración de Firebase contiene identificadores únicos, pero no secretos, para su proyecto. Para obtener más información sobre este archivo de configuración, visite Comprender los proyectos de Firebase .
Puede descargar su archivo de configuración de Firebase nuevamente en cualquier momento.
Asegúrese de que el nombre del archivo de configuración no tenga caracteres adicionales, como
(2)
.
Para que los valores de su archivo de configuración
sean accesibles para los SDK de Firebase, necesita el complemento Gradle de servicios de Google (google-services.json google-services
).En su archivo Gradle de nivel raíz (nivel de proyecto) (
<project>/build.gradle.kts
o<project>/build.gradle
), agregue el complemento de servicios de Google como una dependencia:Kotlin
plugins { id("com.android.application") version "7.3.0" apply false // ... // Add the dependency for the Google services Gradle plugin id("com.google.gms.google-services") version "4.4.1" apply false }
Groovy
plugins { id 'com.android.application' version '7.3.0' apply false // ... // Add the dependency for the Google services Gradle plugin id 'com.google.gms.google-services' version '4.4.1' apply false }
En el archivo Gradle de su módulo (nivel de aplicación) (normalmente
<project>/<app-module>/build.gradle.kts
o<project>/<app-module>/build.gradle
), agregue el complemento de servicios de Google:Kotlin
plugins { id("com.android.application") // Add the Google services Gradle plugin id("com.google.gms.google-services") // ... }
Groovy
plugins { id 'com.android.application' // Add the Google services Gradle plugin id 'com.google.gms.google-services' // ... }
Agregue SDK de Firebase a su aplicación
En el archivo Gradle de su módulo (nivel de aplicación) (generalmente
<project>/<app-module>/build.gradle.kts
o<project>/<app-module>/build.gradle
), agregue la dependencia para Firebase Cloud Biblioteca de mensajería para Android. Recomendamos utilizar Firebase Android BoM para controlar el control de versiones de la biblioteca.Para una experiencia óptima con Firebase Cloud Messaging, recomendamos habilitar Google Analytics en su proyecto de Firebase y agregar el SDK de Firebase para Google Analytics a su aplicación.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.8.0")) // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-messaging") implementation("com.google.firebase:firebase-analytics") }
Al usar Firebase Android BoM , su aplicación siempre usará versiones compatibles de las bibliotecas de Firebase Android.
¿Busca un módulo de biblioteca específico de Kotlin? A partir de octubre de 2023 (Firebase BoM 32.5.0) , tanto los desarrolladores de Kotlin como los de Java podrán depender del módulo de biblioteca principal (para más detalles, consulte las preguntas frecuentes sobre esta iniciativa ).(Alternativa) Agregue dependencias de la biblioteca de Firebase sin usar la BoM
Si elige no utilizar la BoM de Firebase, debe especificar cada versión de la biblioteca de Firebase en su línea de dependencia.
Tenga en cuenta que si usa varias bibliotecas de Firebase en su aplicación, le recomendamos encarecidamente usar la BoM para administrar las versiones de la biblioteca, lo que garantiza que todas las versiones sean compatibles.
dependencies { // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-messaging:23.4.1") implementation("com.google.firebase:firebase-analytics:21.6.1") }
Sincroniza tu proyecto de Android con archivos Gradle.
Las compilaciones de Gradle que utilizan el complemento Android Gradle (AGP) v4.2 o anterior deben habilitar la compatibilidad con Java 8. De lo contrario, estos proyectos de Android obtienen un error de compilación al agregar un SDK de Firebase.
Para solucionar este error de compilación, puede seguir una de dos opciones:
- Agregue las
compileOptions
enumeradas en el mensaje de error a su archivobuild.gradle.kts
obuild.gradle
a nivel de aplicación . - Aumente el
minSdk
para su proyecto de Android a 26 o superior.
Obtenga más información sobre este error de compilación en estas preguntas frecuentes .
- Agregue las
Accede al token de registro
Para enviar un mensaje a un dispositivo específico, necesita conocer el token de registro de ese dispositivo. Debido a que necesitarás ingresar el token en un campo en la consola de Notificaciones para completar este tutorial, asegúrate de copiar el token o almacenarlo de forma segura después de recuperarlo.
En el inicio inicial de su aplicación, el SDK de FCM genera un token de registro para la instancia de la aplicación cliente. Si desea apuntar a dispositivos individuales o crear grupos de dispositivos, deberá acceder a este token extendiendo FirebaseMessagingService
y anulando onNewToken
.
Esta sección describe cómo recuperar el token y cómo monitorear los cambios en el token. Debido a que el token se puede rotar después del inicio inicial, se recomienda encarecidamente recuperar el token de registro actualizado más reciente.
El token de registro podrá cambiar cuando:
- La aplicación se restaura en un nuevo dispositivo.
- El usuario desinstala/reinstala la aplicación.
- El usuario borra los datos de la aplicación.
Recuperar el token de registro actual
Cuando necesites recuperar el token actual, llama FirebaseMessaging.getInstance().getToken()
:
Kotlin+KTX
FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task -> if (!task.isSuccessful) { Log.w(TAG, "Fetching FCM registration token failed", task.exception) return@OnCompleteListener } // Get new FCM registration token val token = task.result // Log and toast val msg = getString(R.string.msg_token_fmt, token) Log.d(TAG, msg) Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show() })
Java
FirebaseMessaging.getInstance().getToken() .addOnCompleteListener(new OnCompleteListener<String>() { @Override public void onComplete(@NonNull Task<String> task) { if (!task.isSuccessful()) { Log.w(TAG, "Fetching FCM registration token failed", task.getException()); return; } // Get new FCM registration token String token = task.getResult(); // Log and toast String msg = getString(R.string.msg_token_fmt, token); Log.d(TAG, msg); Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show(); } });
Monitorear la generación de tokens
La devolución de llamada onNewToken
se activa cada vez que se genera un nuevo token.
Kotlin+KTX
/** * Called if the FCM registration token is updated. This may occur if the security of * the previous token had been compromised. Note that this is called when the * FCM registration token is initially generated so this is where you would retrieve the token. */ override fun onNewToken(token: String) { Log.d(TAG, "Refreshed token: $token") // If you want to send messages to this application instance or // manage this apps subscriptions on the server side, send the // FCM registration token to your app server. sendRegistrationToServer(token) }
Java
/** * There are two scenarios when onNewToken is called: * 1) When a new token is generated on initial app startup * 2) Whenever an existing token is changed * Under #2, there are three scenarios when the existing token is changed: * A) App is restored to a new device * B) User uninstalls/reinstalls the app * C) User clears app data */ @Override public void onNewToken(@NonNull String token) { Log.d(TAG, "Refreshed token: " + token); // If you want to send messages to this application instance or // manage this apps subscriptions on the server side, send the // FCM registration token to your app server. sendRegistrationToServer(token); }
Una vez que haya obtenido el token, puede enviarlo a su servidor de aplicaciones y almacenarlo utilizando su método preferido.
Enviar un mensaje de notificación de prueba
Instale y ejecute la aplicación en el dispositivo de destino. En dispositivos Apple, deberás aceptar la solicitud de permiso para recibir notificaciones remotas.
Asegúrese de que la aplicación esté en segundo plano en el dispositivo.
En Firebase console, abre la página de Mensajería .
Si este es su primer mensaje, seleccione Crear su primera campaña .
- Seleccione Mensajes de notificación de Firebase y seleccione Crear .
De lo contrario, en la pestaña Campañas , seleccione Nueva campaña y luego Notificaciones .
Ingrese el texto del mensaje. Todos los demás campos son opcionales.
Seleccione Enviar mensaje de prueba en el panel derecho.
En el campo etiquetado Agregar un token de registro de FCM , ingrese el token de registro que obtuvo en una sección anterior de esta guía.
Seleccione Prueba .
Después de seleccionar Probar , el dispositivo cliente objetivo (con la aplicación en segundo plano) debería recibir la notificación.
Para obtener información sobre la entrega de mensajes a su aplicación, consulte el panel de informes de FCM , que registra la cantidad de mensajes enviados y abiertos en dispositivos Apple y Android, junto con datos de "impresiones" (notificaciones vistas por los usuarios) para aplicaciones de Android.
Próximos pasos
Enviar mensajes a aplicaciones en primer plano
Una vez que haya enviado correctamente mensajes de notificación mientras su aplicación está en segundo plano, consulte Recibir mensajes en una aplicación de Android para comenzar a enviar a aplicaciones en primer plano.
Vaya más allá de los mensajes de notificación
Para ir más allá de los mensajes de notificación y agregar otro comportamiento más avanzado a su aplicación, consulte: