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 es news.

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 temas stock-GOOG o industry-tech.

Ejercicios prácticos

Ejercicio 1: Enviar un mensaje de datos

Instrucciones:

  1. Configura tu proyecto de Firebase y obtén el token de registro de un dispositivo.
  2. 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:

  1. Suscribe un dispositivo a un tema específico.
  2. 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

Módulo 3: Base de datos en tiempo real de Firebase

Módulo 4: Cloud Firestore

Módulo 5: Almacenamiento de Firebase

Módulo 6: Mensajería en la nube de Firebase

Módulo 7: Análisis de Firebase

Módulo 8: Funciones de Firebase

Módulo 9: Monitoreo de rendimiento de Firebase

Módulo 10: Laboratorio de pruebas de Firebase

Módulo 11: Temas avanzados de Firebase

© Copyright 2024. Todos los derechos reservados