En esta ocasión he decidido empezar una serie de posts (en un futuro podrían volverse videos) explicando(no implementando) las distintas herramientas que nos entrega Firebase, para este primer artículo hablaré de Firebase Cloud Messaging abreviado como FCM


¿Que es?

Esta herramienta busca simplificar algo que con el tiempo se complicó debido a la cantidad de casos y dispositivos, me refiero a las Push Notifications, si esas pequeñas y acumuladas ventanas que nos avisan si nos escribieron o a alguien le “gusto” algo que publicamos.


¿Donde funciona?

El ecosistema de Firebase prioriza el desarrollo de aplicaciones móviles pero no se ha olvidado de que hay más plataformas. El FCM funciona tanto en dispositivos móviles como en web e incluso lo podemos integrar a clientes de escritorio y juegos. Todo esto se basa en la nube por lo que más adelante veremos que podemos configurar incluso la expiración para los mensajes puesto que si el usuario no está en línea el mensaje quedará en espera. 


Mecánica:

FCM funciona obteniendo primero que nada los permisos del usuario para poder enviarle las notificaciones, como paso 2 generamos una llave única por cada dispositivo conocida como FCM Token con la cual podremos enviarle notificaciones de forma personalizada a ese dispositivo (Sugiero que en una base de datos guardes el token asociado a un usuario pues puede tener N dispositivos). Una vez que hacemos esto existen 3 casos en los que usamos las notificaciones que son:

1. Notificando al usuario:

Me refiero al caso más común donde creamos un mensaje para cada usuario. El ejemplo más básico de este caso son los “me gusta” que recibe quien hizo la publicación.

2. Notificar un tema:

Este caso se refleja mucho en el caso de los chats (ante todo los grupales). Aquí nosotros creamos un tema con un nombre X al cual podemos suscribir los N usuarios que deseemos y al momento de enviar una notificación al mismo llegará a los usuarios correspondientes.

3. Notificación desde la consola:

Al momento que queremos notificar a todos los usuarios de una aplicación que que encajen con una o varias condiciones, podemos hacerlo desde la consola de Firebase y colocar los datos.


Propiedades:

Una notificación no solo es un mensaje plano, muchas veces debemos pensar si está debe llevar una imagen, que icono usará y lo más importante que acción generar en la aplicación. Si bien lo último necesita que programemos al menos una función desde la aplicación para ejecutarse correctamente, desde que la enviamos vamos a necesitar datos para actuar. Yo catalogo las notificaciones en 3 grupos distintos que son los siguientes:

1. Notificación simple:

Este es el caso más simple donde solamente enviaremos un mensaje y un título.

Como podemos ver este requiere del FCM Token que creamos con anterioridad y después recibe los parámetros de notification los cuales son un title y un body

2. Notificación con datos:

Como comentaba anteriormente, muchas veces queremos que la notificación al ser seleccionada por el usuario desencadene cierta acción como ir a una publicación o un video (ejemplo de las suscripciones de Youtube) para eso usaremos el esquema anterior y agregaremos la propiedad data:

Vemos que data se vuelve un objeto que tiene las propiedades que necesitemos, estas reciben un nombre y un valor. En este caso he creado una propiedad Vídeo y su valor vendría ser el ID del que se desea reproducir.

3. Notificación por Sistema Operativo:

Este es el más complejo de los 3 ya que nos permite enviar de distinta forma la información para las plataformas (web, iOS y Android). Si bien cuando digo de distinta forma no me refiero al mensaje o los datos de la notificación si se trata de parámetros específicos como lo son la duración en android (ttl), la cabecera en iOS y la duración en web:

Para terminar les dejo el enlace a la documentación oficial y a otro post de Firebase de mi autoría:

Doc: http://bit.ly/FCMDOC

Autenticación SMS con Firebase

Cualquier duda con gusto la responderé en los comentarios y pronto la siguiente entrega de esta serie.