Arquitectura de notificaciones Firebase

Clase 28 de 32Curso de Firebase 5 para Web

Resumen

Entiende cómo usar Firebase para enviar notificaciones push en la web con confianza. Con Cloud Messaging, puedes mantener el engagement de tus usuarios con mensajes relevantes, seguros y sin costo, tanto cuando están activos como cuando están en segundo plano.

¿Qué es Cloud Messaging y para qué sirven las notificaciones?

Cloud Messaging es el envío de mensajes al browser. Permite enviar notificaciones push para recordar tareas, anunciar novedades o informar cambios importantes. Puedes dirigir mensajes a un dispositivo, a varios dispositivos o a suscriptores de un tópico según sus intereses.

  • Envío de mensajes al browser con notificaciones push.
  • Segmentación por dispositivo, múltiples dispositivos o suscripción a un tópico.
  • Incremento del compromiso al mantener presente tu plataforma.

¿Cómo se envían y reciben las notificaciones en el browser?

El envío se realiza mediante HTTP o XMPP, o usando el Admin SDK. Hoy, no está soportado enviar desde la consola de mensajería de Firebase. Todo viaja por un protocolo seguro (HTTP) y no tiene costo, incluso a gran escala.

  • Protocolos compatibles: HTTP y XMPP.
  • Alternativa de servidor: Admin SDK.
  • No soportado por la consola de mensajería de Firebase.
  • Tráfico por protocolo seguro HTTP.
  • Envíos sin costo, incluso millones de mensajes.

La recepción en el cliente tiene dos formas. Si el usuario está en tu plataforma, puedes mostrar un aviso en la interfaz. Si el browser está abierto pero el usuario no está en tu página, el mensaje llega en background y se muestra como notificación del sistema, por ejemplo en la barra de tareas junto a la hora y la fecha.

  • Recepción en foreground con mensajes dentro de la interfaz.
  • Recepción en background con notificación del sistema.

¿Cuál es la arquitectura de notificaciones con service worker y Cloud Functions?

El flujo combina cliente y servidor para registrar permisos, gestionar tokens y disparar notificaciones por eventos. La clave es el service worker en el cliente y las Cloud Functions en el servidor.

¿Qué ocurre en el cliente?

  • El usuario ingresa a la plataforma y se solicitan permisos de notificación.
  • Al aceptar, se registra un ** service worker para ejecutar tareas en background** sin una página activa.
  • Se genera un token único para ese cliente.
  • El token se envía a Firebase y se inserta en una colección de tokens (parte del desarrollo propio).

¿Qué hace el servidor?

  • Una Cloud Function se dispara al insertar un nuevo token en la colección.
  • La función suscribe el token a un tópico, por ejemplo “nuevos posts”.
  • Cuando alguien registra un post en la plataforma, se guarda en la base de datos en Firestorm [que ya hicimos eso].
  • Ese evento dispara otra Cloud Function que envía una notificación al tópico avisando del nuevo post.
  • El browser recibe la notificación gracias al service worker: en background como notificación del sistema o en foreground como mensaje en la UI.

¿Qué habilidades y conceptos pones en práctica?

  • Gestión de permisos de notificación y experiencia de usuario.
  • Registro y uso de ** service workers** para procesos en background.
  • Manejo de tokens y almacenamiento en colección.
  • Suscripción a tópicos para segmentar audiencias.
  • Creación de ** Cloud Functions** disparadas por eventos de base de datos.
  • Envío seguro por HTTP/XMPP desde servidor con Admin SDK.

¿Te gustaría comentar qué tópico crearías para tus usuarios o qué notificaciones implementarías primero?

      Arquitectura de notificaciones Firebase