¿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

  1. 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.
  2. 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 o GoogleService-Info.plist para iOS).

Paso 2: Integración del SDK de Firebase en tu aplicación

Android

  1. 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'
      }
      
  2. Agregar el archivo de configuración:

    • Coloca el archivo google-services.json en el directorio app/ de tu proyecto.
  3. Inicializar Firebase en tu aplicación:

    • En el archivo MainActivity.java o MainActivity.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);
          }
      }
      

iOS

  1. 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
      
  2. Agregar el archivo de configuración:

    • Coloca el archivo GoogleService-Info.plist en el directorio raíz de tu proyecto Xcode.
  3. 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
          }
      }
      

Envío de notificaciones

Desde la consola de Firebase

  1. Acceder a la sección de notificaciones:

    • En la consola de Firebase, selecciona tu proyecto.
    • En el menú de la izquierda, selecciona "Cloud Messaging".
  2. 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

  1. Objetivo: Enviar una notificación a tu aplicación desde la consola de Firebase.
  2. 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

  1. Objetivo: Enviar una notificación a tu aplicación desde un servidor Node.js.
  2. 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

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