FCM — qué es, principios de Firebase Cloud Messaging en el desarrollo

Autor: IT Sectr Publicado: 2026-03-19 Tiempo de lectura: 8 min

FCM (Firebase Cloud Messaging) es un servicio multiplataforma de Google para enviar notificaciones push y transferir datos entre un servidor y aplicaciones móviles. Soporta Android, iOS y plataformas web a través de una API unificada. Según la Documentación de Firebase, FCM procesa más de mil millones de mensajes diariamente en todo el mundo.

Puntos clave

  • FCM es un servicio multiplataforma de Google para enviar notificaciones push y datos
  • Arquitectura — el cliente recibe un token de registro, el servidor envía mensajes a través de Firebase Connection Server
  • Tipos de mensajes — notification (visualización automática) y data (procesamiento completo en la app)
  • Entrega — FCM utiliza una conexión persistente o colas prioritarias para garantizar la entrega
  • Integración — configuración mediante Firebase SDK, ajuste de google-services.json y configuración del servidor

¿Qué es FCM?

Firebase Cloud Messaging (FCM) es un servicio en la nube de Google que garantiza la entrega confiable de notificaciones push y mensajes de datos a dispositivos móviles. Anteriormente conocido como Google Cloud Messaging (GCM), FCM se ha convertido en la herramienta principal para notificaciones multiplataforma en el ecosistema de Firebase.

FCM selecciona automáticamente el canal de entrega óptimo según la plataforma: en Android utiliza su propia conexión FCM; en iOS utiliza APNS (a través de la puerta de enlace de FCM). El desarrollador no necesita implementar dos integraciones diferentes — FCM se encarga del enrutamiento.

El servicio proporciona una API REST unificada y un Admin SDK para enviar mensajes. Esto permite enviar notificaciones desde el lado del servidor sin estar vinculado a una plataforma de destinatario específica.

Capacidades clave de FCM

FCM soporta varios modos de entrega: un mensaje único a un dispositivo específico, transmisión grupal por tema y envío segmentado por condiciones. También están disponibles el envío programado y las pruebas A/B del contenido de las notificaciones.

¿Cómo funciona Firebase Cloud Messaging?

La arquitectura de FCM se basa en tres componentes: la aplicación cliente, el Firebase Connection Server y el servidor de aplicaciones. El cliente se registra en FCM al iniciarse y recibe un token de registro único — una cadena que identifica el dispositivo para la aplicación dada.

El servidor de aplicaciones envía una solicitud a la API REST de FCM, especificando el token del destinatario o el tema. El Firebase Connection Server entrega el mensaje utilizando una conexión XMPP persistente o una solicitud HTTP. Si el dispositivo está fuera de línea, el mensaje se pone en cola y se entrega cuando se restablece la conexión.

FCM garantiza la entrega mediante colas prioritarias y un mecanismo de confirmación. En Android, el mensaje se almacena hasta 28 días en la cola; en iOS, hasta 4 semanas (a través de APNS). Después de la fecha de vencimiento, el mensaje se elimina sin notificación.

Ciclo de vida del token FCM

El token de registro puede cambiar en varios casos: al restaurar datos de la aplicación, al actualizar a una nueva versión o al limpiar la caché. La aplicación debe implementar FirebaseMessagingService.onNewToken para manejar las actualizaciones del token y sincronizar con el servidor.

Tipos de mensajes FCM

FCM soporta dos tipos de carga útil: notification y data. Cada tipo determina cómo y cuándo se procesa el mensaje en el dispositivo del destinatario.

ParámetroNotificationData
Visualización automáticaSí, si la app está en segundo planoNo, solo en la app
ProcesamientoSistema/NOS — en segundo plano; app — en primer planoSiempre en la app (onMessageReceived)
Tamaño máximo4 KB4 KB
Claves personalizadasLimitado a campos predefinidosCualquier par clave-valor
Requiere CollapseKeyOpcionalOpcional para agrupación

En la práctica, se recomienda utilizar mensajes data cuando la aplicación necesita procesamiento completo de la notificación en onMessageReceived. Los mensajes notification son adecuados para escenarios simples donde la visualización del sistema es suficiente.

FCM y APNS: comparación de enfoques

FCM y APNS son los dos servicios principales de entrega push. FCM funciona como una puerta de enlace multiplataforma, mientras que APNS es solo para el ecosistema de Apple. Sus diferencias clave radican en la arquitectura, los requisitos de certificados y los mecanismos de enrutamiento.

  • Multiplataforma — FCM soporta Android, iOS, Web; APNS solo iOS, macOS, watchOS, tvOS
  • Autenticación — FCM utiliza Server Key u OAuth 2.0; APNS utiliza un certificado o Token-based (clave p8)
  • Prioridad del mensaje — FCM tiene normal/high; APNS tiene immediate/power-efficient consideration
  • Temas — FCM soporta suscripción a temas de forma nativa; APNS requiere lógica de servidor

La elección entre FCM y APNS directo depende de la arquitectura del proyecto. Para aplicaciones multiplataforma, FCM es la opción óptima. Para proyectos solo iOS, es aceptable trabajar directamente con APNS a través de la API HTTP/2.

Cuándo elegir FCM en lugar de APNS directo

FCM está justificado cuando el proyecto utiliza Android e iOS simultáneamente, así como cuando se necesitan análisis de Firebase, pruebas A/B de notificaciones o temas sin lógica de servidor. APNS directo es preferible para aplicaciones solo iOS con dependencias mínimas y requisitos estrictos de latencia de entrega.

Integración de FCM en Android

Para conectar FCM a una aplicación Android, es necesario agregar el SDK de Firebase y configurar google-services.json en la raíz del proyecto. Después del registro del token, la aplicación está lista para recibir mensajes a través de FirebaseMessagingService.

kotlin
// build.gradle (Module)
dependencies {
    implementation("com.google.firebase:firebase-messaging:24.1.0")
}

// AndroidManifest.xml
<service android:name=".MyFirebaseMessagingService"
    android:exported="false">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT"/>
    </intent-filter>
</service>

class MyFirebaseMessagingService :
    FirebaseMessagingService() {

    override fun onNewToken(token: String) {
        sendTokenToServer(token)
    }

    override fun onMessageReceived(message: RemoteMessage) {
        message.notification?.let {
            showNotification(it.title, it.body)
        }
    }
}

Después de la configuración, la aplicación recibe automáticamente un token FCM en el primer inicio. El token debe enviarse al servidor de la aplicación para el envío posterior de notificaciones a este dispositivo.

Configuración de un canal para notificaciones FCM

En Android 8+, antes de enviar una notificación FCM con visualización automática, se debe crear un NotificationChannel. Los mensajes notification de FCM utilizan el ID de canal predeterminado, pero se recomienda crear un canal personalizado a través de FirebaseMessagingService al recibir el primer mensaje. Los mensajes data no requieren un canal — la aplicación decide por sí misma cómo y cuándo mostrar la notificación.

Integración de FCM en iOS

En iOS, FCM actúa como intermediario entre el servidor de la aplicación y APNS. Firebase recibe el mensaje del servidor, lo envuelve en formato APNS y lo envía a través de la puerta de enlace de Apple. El desarrollador debe configurar una clave o certificado APNS en la consola de Firebase.

swift
import FirebaseMessaging
import UserNotifications

class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions options: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        FirebaseApp.configure()
        UNUserNotificationCenter.current().delegate = self

        Messaging.messaging().delegate = self
        return true
    }
}

extension AppDelegate: MessagingDelegate {
    func messaging(
        _ messaging: Messaging,
        didReceiveRegistrationToken fcmToken: String?
    ) {
        UserDefaults.standard.set(fcmToken, forKey: "fcm_token")
    }
}

En iOS, el registro en APNS ocurre de forma asíncrona. El SDK de FCM obtiene automáticamente el token APNS y lo pasa al servidor de Firebase. didReceiveRegistrationToken se activa al recibir un nuevo token FCM, que combina el token APNS con el identificador del proyecto.

Verificación del estado de entrega

FCM proporciona una consola de Firebase para monitorear la entrega: la cantidad de notificaciones enviadas, recibidas y mostradas. También está disponible una devolución de llamada de estado a través de Firebase Cloud Functions para rastrear errores de entrega en el lado del servidor. Métricas clave: impresiones y aperturas de notificaciones.

Mejores prácticas de FCM

Al trabajar con FCM, es importante elegir el tipo de mensaje correcto para cada escenario. Para notificaciones simples con visualización automática, use mensajes notification. Para casos donde la aplicación necesita procesar datos antes de mostrar, use mensajes data. Un tipo mixto (notification + data) se recomienda solo si los datos son necesarios para análisis y no para cambiar el contenido de la notificación.

Gestione los tokens de forma centralizada. Almacene los tokens actuales en el servidor en una tabla vinculada al usuario y la plataforma. Implemente un mecanismo de limpieza de tokens obsoletos: cuando encuentre un error NotRegistered o InvalidRegistration, elimine el token de la base de datos. Los tokens rara vez cambian, pero su limpieza es un elemento obligatorio del soporte de FCM.

Utilice claves de colapso (collapseKey) para agrupar mensajes. Si está enviando múltiples notificaciones del mismo tipo (por ejemplo, "actualización del tipo de cambio"), establezca el mismo collapseKey. FCM entregará solo el último mensaje del grupo, reduciendo la carga del dispositivo y evitando la sobrecarga de notificaciones para el usuario.

Monitoree la entrega a través de Firebase Console y Cloud Functions. Los análisis de FCM muestran la cantidad de notificaciones enviadas, recibidas y mostradas. Si la tasa de visualización es inferior al 70%, verifique la configuración de los canales en Android y los permisos en iOS. La baja entrega a menudo está relacionada con canales deshabilitados o prohibiciones de notificaciones. Quinto: use las pruebas A/B de Firebase para optimizar el texto de las notificaciones y el momento de envío — esto aumenta la conversión de aperturas en un 15–25% según los datos de Firebase.

Preguntas frecuentes

¿Cuál es la diferencia entre FCM y GCM?

FCM es la actualización evolutiva de GCM (Google Cloud Messaging). FCM ofrece una configuración simplificada a través de Firebase Console, análisis integrados, temas y soporte para Web Push. GCM fue descontinuado oficialmente en abril de 2019, y todos los proyectos deben migrar a FCM.

¿Cuántos mensajes se pueden enviar a través de FCM de forma gratuita?

Firebase Cloud Messaging es un servicio gratuito sin límites en la cantidad de mensajes. El pago se aplica solo por el uso de otros servicios de Firebase como Cloud Functions o Firestore. FCM no requiere una suscripción Spark o Blaze para el envío básico de notificaciones.

¿Por qué puede cambiar el token de FCM?

El token de FCM cambia cuando: se restaura la aplicación desde una copia de seguridad, se borran los datos de la aplicación, se reinstala, se actualiza a una nueva versión con un Sender ID modificado. Siempre maneje onNewToken en FirebaseMessagingService para enviar el nuevo token al servidor.

¿Funciona FCM en China?

FCM de Google está bloqueado en China. Para la entrega de notificaciones en China se utilizan servicios alternativos: Huawei Push Kit, MiPush (Xiaomi), Oppo Push, Vivo Push. Para la entrega multiplataforma, se utilizan servicios multiproveedor como Getui.

¿Cómo verificar que FCM está configurado correctamente?

Use la consola integrada de Firebase: seleccione "Cloud Messaging" — "Send Test Message". Ingrese un token de prueba y envíe un mensaje notification. La notificación debería aparecer en el dispositivo. También puede monitorear los registros de FirebaseMessagingService.onMessageReceived.

Resumen

  • FCM es un servicio en la nube multiplataforma de Google para enviar notificaciones push y datos
  • Token es un identificador único del dispositivo utilizado para el envío dirigido de mensajes
  • Notification es un tipo de mensaje con visualización automática por el sistema en modo de segundo plano
  • Data es un tipo de mensaje con carga útil completa procesada solo dentro de la app
  • Temas es un mecanismo de transmisión grupal basado en suscripción a temas sin almacenar tokens en el servidor
  • Puerta de enlace APNS — para iOS, FCM actúa como intermediario, reenviando mensajes a través de APNS
  • Gratuito — FCM no cobra por la cantidad de mensajes enviados

Desarrollaremos una aplicación móvil llave en mano

IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.

Discutir el proyecto

Lea también