En este tema, exploraremos las características avanzadas de la mensajería en la nube de Firebase (FCM). Estas características permiten a los desarrolladores crear experiencias de usuario más ricas y personalizadas mediante el uso de notificaciones avanzadas y mensajes de datos.
Contenido
Mensajes de datos
Los mensajes de datos permiten enviar información personalizada a la aplicación cliente sin mostrar una notificación al usuario. Estos mensajes son útiles para actualizar la interfaz de usuario o sincronizar datos en segundo plano.
Ejemplo de mensaje de datos
{ "to": "<FCM_TOKEN>", "data": { "title": "Actualización de datos", "body": "Se han actualizado los datos en segundo plano.", "customKey": "customValue" } }
Explicación
to
: El token de registro del dispositivo al que se envía el mensaje.data
: Un objeto que contiene los datos personalizados que se envían a la aplicación cliente.
Mensajes de notificación
Los mensajes de notificación son aquellos que muestran una notificación en el dispositivo del usuario. Estos mensajes pueden incluir un título, un cuerpo y otros parámetros de notificación.
Ejemplo de mensaje de notificación
{ "to": "<FCM_TOKEN>", "notification": { "title": "Nueva notificación", "body": "Tienes un nuevo mensaje.", "icon": "icon_name", "click_action": "OPEN_ACTIVITY" } }
Explicación
notification
: Un objeto que contiene los parámetros de la notificación, como el título, el cuerpo, el icono y la acción al hacer clic.
Mensajes programados
Los mensajes programados permiten enviar notificaciones en un momento específico en el futuro. Esto es útil para recordatorios, promociones y otros eventos programados.
Ejemplo de mensaje programado
Para programar un mensaje, se puede utilizar Cloud Functions para Firebase junto con FCM. Aquí hay un ejemplo de cómo hacerlo:
const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(); exports.sendScheduledMessage = functions.pubsub.schedule('every 24 hours').onRun((context) => { const message = { notification: { title: 'Recordatorio diario', body: 'No olvides revisar tu aplicación hoy.' }, token: '<FCM_TOKEN>' }; return admin.messaging().send(message) .then((response) => { console.log('Mensaje enviado:', response); }) .catch((error) => { console.log('Error al enviar el mensaje:', error); }); });
Explicación
functions.pubsub.schedule('every 24 hours')
: Programa la función para que se ejecute cada 24 horas.admin.messaging().send(message)
: Envía el mensaje programado utilizando FCM.
Mensajes dirigidos
Los mensajes dirigidos permiten enviar notificaciones a un grupo específico de usuarios. Esto se puede hacer utilizando temas o grupos de dispositivos.
Ejemplo de mensaje dirigido a un tema
{ "to": "/topics/news", "notification": { "title": "Noticias de última hora", "body": "Consulta las últimas noticias en nuestra aplicación." } }
Explicación
to
: El tema al que se envía el mensaje. En este caso, el tema esnews
.
Mensajes condicionales
Los mensajes condicionales permiten enviar notificaciones basadas en condiciones específicas, como la plataforma del dispositivo o la versión de la aplicación.
Ejemplo de mensaje condicional
{ "condition": "'stock-GOOG' in topics || 'industry-tech' in topics", "notification": { "title": "Actualización del mercado", "body": "Consulta las últimas actualizaciones del mercado." } }
Explicación
condition
: La condición que debe cumplirse para que el mensaje se envíe. En este caso, el mensaje se envía si el usuario está suscrito a los temasstock-GOOG
oindustry-tech
.
Ejercicios prácticos
Ejercicio 1: Enviar un mensaje de datos
Instrucciones:
- Configura tu proyecto de Firebase y obtén el token de registro de un dispositivo.
- Envía un mensaje de datos al dispositivo utilizando la API de FCM.
Código de ejemplo:
const admin = require('firebase-admin'); admin.initializeApp(); const message = { data: { title: 'Actualización de datos', body: 'Se han actualizado los datos en segundo plano.', customKey: 'customValue' }, token: '<FCM_TOKEN>' }; admin.messaging().send(message) .then((response) => { console.log('Mensaje enviado:', response); }) .catch((error) => { console.log('Error al enviar el mensaje:', error); });
Ejercicio 2: Enviar un mensaje dirigido a un tema
Instrucciones:
- Suscribe un dispositivo a un tema específico.
- Envía un mensaje de notificación al tema utilizando la API de FCM.
Código de ejemplo:
const admin = require('firebase-admin'); admin.initializeApp(); const message = { notification: { title: 'Noticias de última hora', body: 'Consulta las últimas noticias en nuestra aplicación.' }, topic: 'news' }; admin.messaging().send(message) .then((response) => { console.log('Mensaje enviado:', response); }) .catch((error) => { console.log('Error al enviar el mensaje:', error); });
Conclusión
En esta sección, hemos explorado las características avanzadas de la mensajería en la nube de Firebase, incluyendo mensajes de datos, mensajes de notificación, mensajes programados, mensajes dirigidos y mensajes condicionales. Estas características permiten a los desarrolladores crear experiencias de usuario más ricas y personalizadas. Asegúrate de practicar los ejercicios proporcionados para reforzar tu comprensión de estos conceptos avanzados.
Curso de Firebase
Módulo 1: Introducción a Firebase
Módulo 2: Autenticación de Firebase
- Introducción a la autenticación de Firebase
- Autenticación por correo electrónico y contraseña
- Autenticación de redes sociales
- Gestión de usuarios
Módulo 3: Base de datos en tiempo real de Firebase
- Introducción a la base de datos en tiempo real
- Lectura y escritura de datos
- Estructura de datos y reglas de seguridad
- Capacidades sin conexión
Módulo 4: Cloud Firestore
- Introducción a Cloud Firestore
- Modelo de datos de Firestore
- Operaciones CRUD
- Consultas avanzadas
- Reglas de seguridad
Módulo 5: Almacenamiento de Firebase
- Introducción al almacenamiento de Firebase
- Subida de archivos
- Descarga de archivos
- Metadatos de archivos y seguridad
Módulo 6: Mensajería en la nube de Firebase
- Introducción a la mensajería en la nube
- Envío de notificaciones
- Manejo de notificaciones
- Características avanzadas de mensajería
Módulo 7: Análisis de Firebase
Módulo 8: Funciones de Firebase
- Introducción a las funciones de Firebase
- Escritura de funciones
- Despliegue de funciones
- Activación de funciones
Módulo 9: Monitoreo de rendimiento de Firebase
- Introducción al monitoreo de rendimiento
- Configuración del monitoreo de rendimiento
- Análisis de datos de rendimiento
Módulo 10: Laboratorio de pruebas de Firebase
- Introducción al laboratorio de pruebas de Firebase
- Ejecución de pruebas
- Análisis de resultados de pruebas