Implementación de Notificaciones en Blog con Firebase
Clase 29 de 32 • Curso de Firebase 5 para Web
Resumen
¿Cómo agregar notificaciones en un blog con Firebase?
¡La integración de notificaciones en tiempo real es fundamental para mantener a tus usuarios informados sobre actualizaciones importantes! Usando Firebase Cloud Messaging, podemos enviar notificaciones a los usuarios cada vez que se publica un nuevo post en tu blog. Aquí te mostraremos paso a paso cómo implementar este sistema para mejorar la experiencia de tus usuarios.
¿Qué pasos iniciales se deben seguir para habilitar las notificaciones?
Primero, comenzamos agregando el script de messaging de Firebase. Este script permite usar los servicios de mensajería en la aplicación web. Aquí está el paso a paso:
-
Incluir el script de messaging:
- Abre la documentación de Firebase para encontrar el script de messaging.
- Copia el script y pégalo en el archivo
index.html
de tu proyecto, preferiblemente junto al script de storage si ya lo tienes.
<script src="https://www.gstatic.com/firebasejs/x.y.z/firebase-messaging.js"></script>
-
Crear un Service Worker:
- Este archivo ejecuta funciones en segundo plano. Crea un archivo llamado
notificaciones-sw.js
y agrégale las siguientes líneas:
importScripts('https://www.gstatic.com/firebasejs/x.y.z/firebase-app.js'); importScripts('https://www.gstatic.com/firebasejs/x.y.z/firebase-messaging.js');
- Este archivo ejecuta funciones en segundo plano. Crea un archivo llamado
-
Agregar un archivo
manifest.json
:- Incluye información sobre tu aplicación para permitir que el navegador gestione las notificaciones. Dentro, asegúrate de incluir el campo
gcm_sender_id
:
{ "gcm_sender_id": "103953800507" }
- Incluye información sobre tu aplicación para permitir que el navegador gestione las notificaciones. Dentro, asegúrate de incluir el campo
-
Registrar el Service Worker:
- Dentro de tu archivo
general.js
o el archivo principal de JavaScript, registra el Service Worker para que el navegador lo ejecute:
navigator.serviceWorker.register('/notificaciones-sw.js') .then(registration => { console.log('ServiceWorker registrado:', registration); firebase.messaging().useServiceWorker(registration); }) .catch(err => { console.error('Error al registrar el Service Worker:', err); });
- Dentro de tu archivo
¿Cómo se configuran las credenciales de notificación?
Para que Firebase sepa a qué proyecto enviar las notificaciones, necesitas registrar las credenciales web:
-
Configurar la autenticación de
messaging
:- Ve a la configuración de tu proyecto en Firebase y genera los certificados necesarios. Usa el método
usePublicVapidKey
para registrar estas credenciales:
const messaging = firebase.messaging(); messaging.usePublicVapidKey('YOUR_PUBLIC_VAPID_KEY_HERE');
- Ve a la configuración de tu proyecto en Firebase y genera los certificados necesarios. Usa el método
-
Solicitar permisos al usuario:
- Es crucial pedir a los usuarios que den permiso para recibir notificaciones. Esto se logra así:
messaging.requestPermission() .then(() => { console.log('Permiso de notificaciones otorgado'); return messaging.getToken(); }) .then(token => { console.log('Token de notificación:', token); // Guarda el token en Firestore... }) .catch(err => { console.error('Error al obtener el permiso o token:', err); });
¿Cómo se gestionan los tokens en Firestore?
Una vez que obtienes el token de notificación, es esencial almacenarlo para futuras referencias. Aquí es cómo gestionar los tokens:
- Almacenar el token en una colección:
- Guarda el token de cada usuario en una colección llamada
tokens
para poder identificar a qué usuarios enviar las notificaciones.
const db = firebase.firestore(); db.collection('tokens').doc(token).set({ token }) .then(() => { console.log('Token registrado en Firestore'); }) .catch(err => { console.error('Error al registrar el token en Firestore:', err); });
- Guarda el token de cada usuario en una colección llamada
Con estos pasos, has configurado con éxito el envío de notificaciones en tiempo real en tu blog utilizando Firebase Cloud Messaging. Estos cambios permiten que tus usuarios reciban alertas a medida que publicas nuevo contenido, mejorando notablemente el compromiso y la interacción con tu plataforma. Sigue aprendiendo y mejorando tus habilidades; ¡el mundo digital siempre tiene algo nuevo que ofrecer!