Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

Firebase Cloud Messaging para notificaciones en Android

Ángel Robledano
  • Escrito por Ángel Robledano el 22 de Octubre de 2018
  • 5 min de lectura | Desarrollo móvil
Firebase Cloud Messaging para notificaciones en Android
El reproductor de video será cargado en breves instantes.

Qué es Firebase Cloud Messaging?

La plataforma Firebase Cloud Messaging es una plataforma creada por Google que se puede utilizar en diferentes tecnologías, tanto en iOS, como Android, como en la web, o en otras como por ejemplo Unity, para el desarrollo del juego.

Ejemplo para enviar notificaciones en Android

En este caso nos vamos a centrar en Android Studio, en el que tenemos un proyecto, con un activity básico, y vamos a ver de qué manera podemos, a través de Android Studio, incluir el envío de notificaciones a dispositivos que tienen instalada nuestra aplicación.

Tools

Setup Firebase

Assistant

 

Tenemos en el menú Tools de Android Studio tenemos la opción de utilizar Firebase. Cómo vemos dispone de muchos servicios que podemos utilizar en Firebase, y en nuestro caso vamos a utilizar el servicio de Cloud Messaging.

En este mismo menú podemos personalizar paso a paso la configuración de nuestro proyecto para que disponga de todo lo necesario para conectarnos al servicio de Firebase de Google.

El primer paso sería conectarnos a Firebase.

Conectándose a Firebase

Nos da la opción de crear un nuevo proyecto o utilizar uno que ya tengamos hecho, que es nuestro caso, ya que tenemos creado un proyecto llamado MecAround, para la aplicación que desarrollamos en el curso.

En caso de que no tengáis ningún proyecto, podéis crear uno nuevo, lo que haría será crear en la consola de Firebase un nuevo proyecto. Para llegar a este paso, seguramente, sí es la primera vez que se utiliza alguno de los servicios de Google en Android Studio, nos pedirá loguearnos con una cuenta de Google.

A continuación clicamos sobre Connect to Firebase, de esta manera creamos en el proyecto de Firebase una conexión con esta aplicación, una conexión a través del Id de Android Studio y también del paquete principal del proyecto.

El segundo paso sería añadir Firebase a nuestro proyecto.

Añadir Firebase a nuestro proyecto

Aceptamos los cambios que va a introducir, que serán añadir una serie de librerías, que son necesarias en nuestros ficheros Gradle para poder incluir la funcionalidad de conexión con Firebase.

El tercer paso será crear una serie de servicios.

En este caso tenemos que crear una clase que extienda de FirebaseInstanceIdService, por lo tanto podemos copiar esta clase y crear un nuevo fichero en New > Java class, darle el nombre FirebaseService, qué extienda de la clase anterior y aceptamos.

Servicios

Después importamos la nueva clase y se nos indica el código de ejemplo que necesitamos del método, que deberíamos sobrescribir, para poder el uso de este servicio este servicio.

El TAG puede ser un String que definamos y que sea el String que queremos utilizar en la consola para que salga este mensaje.

TAG

Por ejemplo escribimos Firebase MecAround, y lo que hacemos es recibir un Token, que es un identificador único, una cadena de caracteres única para nuestro dispositivo, por si queremos almacenarlo en nuestro servidor.

Esto se hace cuando tenemos un servidor propio desde el que veamos notificaciones. En nuestro caso no necesitamos de este método para enviar el Token al servidor, ya que nosotros vamos a utilizar la consola de envío de mensajes de Google.

Por otro lado necesitamos indicar que ese servicio lo vamos a declarar en nuestro manifiesto, lo que hacemos mediante un elemento de este tipo, al que llamamos FirebaseService. Es una forma de decirle a Firebase que cuando recibamos el Id del dispositivo sea tratado en este servicio. Se actúa de alguna manera como los intent-filter.

Por otro lado, en el paso 4, vamos a tener que crear otro servicio, pero en este caso que extienda de la clase FirebaseMessagingService.

Vamos a crear otro servicio, que podemos crear también a través del asistente desde New > Service > Service, que lo que hace es crear directamente un servicio. Como realmente lo que queremos es que extienda de la clase FirebaseMessagingService, en lugar de este método vamos a utilizar otro.

Este método que emplearemos es un método en el que se van a recibir los mensajes que nosotros lancemos desde la consola de Firebase.

Método recepción de mensajes

Importamos todas las clases que aparecen, algunas pertenecen a Firebase y otras a Google.

El TAG lo vamos a definir de la misma manera, es decir, como un String que sea, por ejemplo Mensajes Firebase.

TAG2

Esto es un código en el que nosotros recibimos el mensaje, que no vamos a utilizar porque esta condicional se utiliza cuando el tratamiento del mensaje va a tardar más de 10 segundos. En ese caso hay que utilizar un objeto que existe en Firebase, el gestor Job Dispatcher, para gestionar los mensajes cuando vamos a tardar más de 10 segundos en gestionarlos. En este caso no hace falta, podemos comentar ese código, y vamos a ver qué ocurre.

intent-filter

Vamos a asegurarnos que el manifiesto, de la misma manera, aparece como nos venía en el asistente.

intent-filer2

Vemos que en este caso le ha llamado MyService, así que lo vamos a llamar así entonces, para que cuando llegue un mensaje de entrada desde la consola de Firebase a nuestro dispositivo móvil, podamos tratar ese mensaje.

Vamos a ejecutar la aplicación y como se nos indica, el último paso sería acceder a esa consola de Firebase, cuyo enlace aparece en el paso 5. Abrimos la consola y en la misma podemos lanzar mensajes.

Si seleccionamos nuestro proyecto, en este caso llamado MecAround, desde la sección Notifications podemos mandar un mensaje a este dispositivo.

mensaje

Vamos a escribir por ejemplo “Hola mundo (Este es mi primer mensaje)” en el campo Texto del Mensaje, en el que tenemos un máximo de caracteres que podemos indicar.

La etiqueta de mensaje sería el texto que yo con el que yo quiero identificar en mi consola el mensaje que he mandado.

tag2

Podemos lanzar, en este caso, por aplicación o por dispositivo único indicando el toque. En nuestro caso vamos a lanzar a todos los dispositivos que tengan instalada la aplicación con este nombre de paquete.

Pulsamos en Enviar, y vamos a la consola de Android. En el Logcat buscamos por Mensaje vemos que nos ha llegado el mensaje que habíamos escrito, es decir, que a la aplicación Android ha llegado ese mensaje.

Evidentemente esto es una prueba, así que lo que deberíamos hacer, en lugar de lanzar un mensaje por la consola, sería crear una notificación para que apareciera en la barra de notificaciones como una notificación que le llega al usuario y el usuario pudiera leer ahí su mensaje.

Relacionado

Te dejamos una selección de cursos, carreras y artículos

Desarrollador de Videojuegos

Desarrollador de Videojuegos

carrera

Incluye 6 cursos:

  • Curso de Construct 2: Desarrolla videojuegos sin código
  • Curso de Matemáticas para videojuegos con Unity
  • Curso de componentes y API de Unity

y 3 cursos más!

Duración: 33 horas y 46 minutos

Construir API con Firebase Cloud functions

Construir API con Firebase Cloud functions

Desarrollo móvil

04 de Agosto de 2017

Aprende a Construir API con Firebase Cloud functions paso a paso con con la nueva funcionalidad que ofrece la plataforma de Google

¿Qué es Firebase de Google?

¿Qué es Firebase de Google?

Desarrollo móvil

09 de Agosto de 2017

Descubre qué es Google Firebase.  Firebase es un conjunto de herramientas orientadas a la creación de aplicaciones de alta calidad, al crecimiento de los usuarios y a ganar más dinero. Le...

Estas son algunas de las empresas que ya confían en OpenWebinars

Profesores y profesionales

Nuestros docentes son profesionales que trabajan día a día en la materia que imparten

Conviértete en profesor de OpenWebinars