¿Qué es la mensajería en la nube de Firebase?
La mensajería en la nube de Firebase (Firebase Cloud Messaging, FCM) es un servicio que permite enviar notificaciones y mensajes a los dispositivos de los usuarios de manera confiable y gratuita. FCM es una herramienta poderosa para mantener a los usuarios comprometidos y actualizados con la información más reciente de tu aplicación.
Características clave de FCM:
- Envío de notificaciones: Permite enviar notificaciones push a los dispositivos de los usuarios.
- Mensajes de datos: Permite enviar datos personalizados a la aplicación cliente.
- Mensajes dirigidos: Permite enviar mensajes a dispositivos específicos, grupos de dispositivos o temas.
- Compatibilidad multiplataforma: Funciona en iOS, Android y la web.
Configuración de Firebase Cloud Messaging
Paso 1: Configuración del proyecto en Firebase
-
Crear un proyecto en Firebase:
- Ve a la consola de Firebase.
- Haz clic en "Agregar proyecto" y sigue las instrucciones para crear un nuevo proyecto.
-
Agregar tu aplicación al proyecto:
- En la consola de Firebase, selecciona tu proyecto.
- Haz clic en el ícono de Android o iOS para agregar una aplicación.
- Sigue las instrucciones para registrar tu aplicación y descargar el archivo de configuración (
google-services.json
para Android oGoogleService-Info.plist
para iOS).
Paso 2: Integración del SDK de Firebase en tu aplicación
Android
-
Agregar dependencias:
-
Abre el archivo
build.gradle
de nivel de proyecto y agrega el repositorio de Google:buildscript { repositories { google() mavenCentral() } dependencies { classpath 'com.google.gms:google-services:4.3.10' } } allprojects { repositories { google() mavenCentral() } }
-
Abre el archivo
build.gradle
de nivel de aplicación y agrega las dependencias de Firebase:apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' dependencies { implementation platform('com.google.firebase:firebase-bom:28.4.1') implementation 'com.google.firebase:firebase-messaging' }
-
-
Agregar el archivo de configuración:
- Coloca el archivo
google-services.json
en el directorioapp/
de tu proyecto.
- Coloca el archivo
-
Inicializar Firebase en tu aplicación:
- En el archivo
MainActivity.java
oMainActivity.kt
, inicializa Firebase:import com.google.firebase.FirebaseApp; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FirebaseApp.initializeApp(this); } }
- En el archivo
iOS
-
Agregar dependencias:
- Abre el archivo
Podfile
y agrega las dependencias de Firebase:platform :ios, '10.0' use_frameworks! target 'YourApp' do pod 'Firebase/Messaging' end
- Abre el archivo
-
Agregar el archivo de configuración:
- Coloca el archivo
GoogleService-Info.plist
en el directorio raíz de tu proyecto Xcode.
- Coloca el archivo
-
Inicializar Firebase en tu aplicación:
- En el archivo
AppDelegate.swift
, inicializa Firebase:import UIKit import Firebase @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { FirebaseApp.configure() return true } }
- En el archivo
Envío de notificaciones
Desde la consola de Firebase
-
Acceder a la sección de notificaciones:
- En la consola de Firebase, selecciona tu proyecto.
- En el menú de la izquierda, selecciona "Cloud Messaging".
-
Crear una nueva notificación:
- Haz clic en "Enviar tu primer mensaje".
- Completa los campos necesarios, como el título, el texto del mensaje y el público objetivo.
- Haz clic en "Siguiente" y luego en "Revisar" para enviar la notificación.
Desde el servidor
Para enviar notificaciones desde tu servidor, puedes usar la API HTTP de FCM. Aquí tienes un ejemplo en Node.js:
const fetch = require('node-fetch'); const serverKey = 'YOUR_SERVER_KEY'; const deviceToken = 'DEVICE_TOKEN'; const message = { to: deviceToken, notification: { title: 'Hello, World!', body: 'This is a test notification.' } }; fetch('https://fcm.googleapis.com/fcm/send', { method: 'POST', headers: { 'Authorization': `key=${serverKey}`, 'Content-Type': 'application/json' }, body: JSON.stringify(message) }) .then(response => response.json()) .then(data => console.log('Success:', data)) .catch(error => console.error('Error:', error));
Ejercicio práctico
Ejercicio 1: Enviar una notificación desde la consola de Firebase
- Objetivo: Enviar una notificación a tu aplicación desde la consola de Firebase.
- Pasos:
- Configura tu proyecto en Firebase y agrega tu aplicación.
- Integra el SDK de Firebase en tu aplicación.
- Envía una notificación desde la consola de Firebase y verifica que se reciba en tu aplicación.
Ejercicio 2: Enviar una notificación desde el servidor
- Objetivo: Enviar una notificación a tu aplicación desde un servidor Node.js.
- Pasos:
- Configura tu proyecto en Firebase y agrega tu aplicación.
- Integra el SDK de Firebase en tu aplicación.
- Usa el código de ejemplo proporcionado para enviar una notificación desde un servidor Node.js y verifica que se reciba en tu aplicación.
Conclusión
En esta lección, hemos aprendido qué es Firebase Cloud Messaging y cómo configurarlo en nuestras aplicaciones. También hemos visto cómo enviar notificaciones tanto desde la consola de Firebase como desde un servidor. En las próximas lecciones, profundizaremos en el manejo de notificaciones y exploraremos características avanzadas de mensajería.
¡Felicidades por completar esta sección! Ahora estás listo para avanzar al siguiente tema: Envío de notificaciones.
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