Enviar Notificaciones Remotas con Firebase Cloud Messaging (FCM) en Android
Introducción
En ésta guía, aprenderemos cómo enviar notificaciones remotas desde Firebase Cloud Messaging (FCM) en una aplicación de Android. A través de este proceso, podrás enviar notificaciones personalizadas a los usuarios de tu aplicación y mantenerlos informados de las actualizaciones importantes.
Si preferis en formato video, miralo a continuación:
Código del proyecto:
Descargar el código inicial: https://github.com/MKiperszmid/MisTutorialesYouTube/tree/base
Descargar el código finalizado: https://github.com/MKiperszmid/MisTutorialesYouTube/tree/remote_notifications
Pasos para enviar notificaciones remotas con FCM:
1. Crear una cuenta de Firebase:
Lo primero que debes hacer es crear una cuenta en Firebase. Dirígete a https://firebase.google.com/ y regístrate si aún no tienes una cuenta. Una vez que hayas iniciado sesión, ve a la consola de Firebase.
2. Crear un nuevo proyecto:
Dentro de la consola de Firebase, crea un nuevo proyecto seleccionando "Crear proyecto" y dándole un nombre, por ejemplo, "Notificaciones Remotas".
3. Configurar el archivo Gradle y Google Services:
En el archivo "build.gradle" del proyecto y el archivo "build.gradle" de la aplicación, copia y pega las configuraciones correspondientes proporcionadas por Firebase a la hora de crear el proyecto.
Luego, te va a pedir que descargues un archivo llamado google-services.json. Lo descargas y lo pegas dentro de la carpeta de la aplicación.
IMPORTANTE: Sincroniza el proyecto!
4. Crear un servicio que se comunique con Firebase Cloud Messaging:
Crea una nueva clase en tu proyecto llamada "FcmService" y haz que herede de Firebase Messaging Service. Sobreescribe el método onMessageReceived, y crea una notificación a partir del parametro message: RemoteMessage
FcmService.kt
class FcmService : FirebaseMessagingService() {
override fun onMessageReceived(message: RemoteMessage) {
super.onMessageReceived(message)
showNotification(message)
}private fun showNotification(message: RemoteMessage) {
val notificationManager = getSystemService(NotificationManager::class.java)
val notification = NotificationCompat.Builder(this, MyApp.NOTIFICATION_CHANNEL_ID)
.setContentTitle(message.notification?.title)
.setContentText(message.notification?.body)
.setSmallIcon(R.drawable.notification_logo)
.setAutoCancel(true)
.build()
notificationManager.notify(1, notification)
}}
5. Agrega el Service a Application y crea el Canal de Notificaciones:
Es importante crear un canal de Notificaciones en caso de usar Android O o superior. Para eso, vamos a hacer uso de NotificationChannel.
No sólo eso, si no que también tenemos que obtener el token de FCM en caso de querer enviarle notificaciones a éste usuario en particular, para testing.
Código:
6. Agrega el Service al Manifest:
Asegúrate de configurar el Android Manifest de la aplicación para que el servicio sea reconocido.
AndroidManifest.xml
<serviceandroid:name=".home.FcmService" android:exported="false">
<intent-filter>
<actionandroid:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
IMPORTANTE: Hay que agregar android:name=".MyApp" dentro del tag de <application para que el NotificationChannel se cree sin problemas.
7. Envía la Notificación:
Dentro de MyApp.kt, ahora tenemos un código que nos genera un token único para identificar el teléfono. Copia el código, y ve a la consola de Firebase.
En la consola de Firebase, selecciona "Messaging" en la sección "Engage". Luego, presiona en "Crear tu primera campaña" y selecciona “Firebase Notification messages”. Y le damos a Create.
Una vez hecho esto, le agregamos un título y una descripción a la notificación, y apretamos en Send test message.
Pegamos el token que copiamos antes, y apretamos en Test.
Y deberías de recibir la notificación sin problemas!
Conclusión:
En este tutorial, hemos aprendido cómo enviar notificaciones remotas desde Firebase Cloud Messaging en una aplicación de Android. Esta característica es muy útil para mantener a los usuarios informados y comprometidos con tu aplicación. Recuerda personalizar las notificaciones según las necesidades de tu proyecto y aprovechar todas las ventajas que Firebase ofrece para el envío de notificaciones remotas.
Para ver más contenido, seguime en mis redes:
https://www.youtube.com/@DevKiper
https://www.AndroidAvanzado.com/
https://instagram.com/Martin_Kiper