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-GOOGoindustry-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
