Para comenzar con FCM, cree el caso de uso más simple: envíe 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 configuró una aplicación de 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úrate de que tu proyecto cumpla con estos requisitos:
- Objetivos API nivel 19 (KitKat) o superior
- Utiliza Android 4.4 o superior
- Utiliza Jetpack (AndroidX) , que incluye el cumplimiento de estos requisitos de versión:
-
com.android.tools.build:gradle
v3.2.1 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 tengan instalados los servicios de Google Play.Inicie sesión en Firebase con su cuenta de Google.
Si aún no tiene un proyecto de Android y solo desea probar un producto de Firebase, puede 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. Visite 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.
Ve 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 manera única su aplicación en el dispositivo y en Google Play Store.
El nombre de un paquete suele denominarse ID de aplicación .
Encuentre 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 Android de Firebase después de que se haya registrado con 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 de conveniencia interno que solo es visible para usted en la consola de Firebase
Certificado de firma de depuración SHA-1 : Firebase Authentication requiere un hash SHA-1 (cuando se utiliza el inicio de sesión de Google o el número de teléfono ) y Firebase Dynamic Links .
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 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 volver a descargar su archivo de configuración de Firebase en cualquier momento.
Asegúrese de que el nombre del archivo de configuración no tenga caracteres adicionales, como
(2)
.
Para que los valores en 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
), agregue el complemento de servicios de Google como una dependencia de buildscript:buildscript { repositories { // Make sure that you have the following two repositories google() // Google's Maven repository mavenCentral() // Maven Central repository } dependencies { ... // Add the dependency for the Google services Gradle plugin classpath 'com.google.gms:google-services:4.3.15' } } allprojects { ... repositories { // Make sure that you have the following two repositories google() // Google's Maven repository mavenCentral() // Maven Central repository } }
En el archivo Gradle de tu módulo (nivel de aplicación) (generalmente
<project>/<app-module>/build.gradle
), agrega el complemento de servicios de Google:plugins { id 'com.android.application' // Add the Google services Gradle plugin id 'com.google.gms.google-services' ... }
Agregue los SDK de Firebase a su aplicación
En el archivo Gradle de tu módulo (nivel de aplicación) (generalmente
<project>/<app-module>/build.gradle
), agrega la dependencia para la biblioteca de Android Firebase Cloud Messaging. Recomendamos usar 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 Firebase SDK para Google Analytics a su aplicación.
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.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.
(Alternativa) Agregar dependencias de la biblioteca de Firebase sin usar el BoM
Si elige no usar Firebase BoM, 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 enfáticamente que use la lista de materiales 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.1.1' implementation 'com.google.firebase:firebase-analytics:21.2.0' }
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.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-ktx' implementation 'com.google.firebase:firebase-analytics-ktx' }
Al usar Firebase Android BoM , su aplicación siempre usará versiones compatibles de las bibliotecas de Firebase Android.
(Alternativa) Agregar dependencias de la biblioteca de Firebase sin usar el BoM
Si elige no usar Firebase BoM, 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 enfáticamente que use la lista de materiales 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-ktx:23.1.1' implementation 'com.google.firebase:firebase-analytics-ktx:21.2.0' }
Sincroniza tu proyecto Android con archivos Gradle.
Las compilaciones de Gradle que usan el complemento de Gradle de Android (AGP) v4.2 o anterior deben habilitar la compatibilidad con Java 8. De lo contrario, estos proyectos de Android tendrán 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 opciones de
compileOptions
enumeradas del mensaje de error a su archivobuild.gradle
de nivel de aplicación. - Aumente el
minSdkVersion
para su proyecto de Android a 26 o más.
Obtenga más información sobre este error de compilación en estas preguntas frecuentes .
- Agregue las opciones de
Acceder al token de registro
Para enviar un mensaje a un dispositivo específico, debe conocer el token de registro de ese dispositivo. Debido a que deberá ingresar el token en un campo en la consola de notificaciones para completar este tutorial, asegúrese 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 enfáticamente recuperar el último token de registro actualizado.
El token de registro puede 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 necesite recuperar el token actual, llame a 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(); } });
Supervisar la generación de tokens
La devolución de llamada onNewToken
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 usando su método preferido.
Enviar un mensaje de notificación de prueba
Instale y ejecute la aplicación en el dispositivo de destino. En los dispositivos Apple, deberá 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, abra la página 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 .
Introduzca 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 de destino (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 los mensajes de notificación mientras su aplicación está en segundo plano, consulte Recibir mensajes en una aplicación de Android para comenzar a enviarlos a las 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: