Enviar Notificaciones Remotas con Firebase Cloud Messaging (FCM) en Android

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) 
    } 

}

Código: https://github.com/MKiperszmid/MisTutorialesYouTube/blob/6b373ed2baee524ccd508c2d5094039b264a329a/app/src/main/java/com/mkiperszmid/emptyapp/home/FcmService.kt

 

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: 

https://github.com/MKiperszmid/MisTutorialesYouTube/blob/6b373ed2baee524ccd508c2d5094039b264a329a/app/src/main/java/com/mkiperszmid/emptyapp/MyApp.kt

 

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>

Código: https://github.com/MKiperszmid/MisTutorialesYouTube/blob/6b373ed2baee524ccd508c2d5094039b264a329a/app/src/main/AndroidManifest.xml

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://twitter.com/DevKiper

https://www.AndroidAvanzado.com/

https://instagram.com/Martin_Kiper

 

Martin Kiperszmid

Artículo por Martin Kiperszmid

Publicado 24 Ag 2023