Descripción general de la arquitectura de FCM

FCM se basa en el siguiente conjunto de componentes que crean, transportan y reciben mensajes:

  1. Herramientas para redactar o crear solicitudes de mensajes. El compositor de notificaciones proporciona una opción basada en GUI para crear solicitudes de notificación. Para lograr una automatización completa y compatibilidad con todos los tipos de mensajes , debes crear solicitudes de mensajes en un entorno de servidor confiable que admita el SDK de Firebase Admin o el protocolo de servidor FCM. Este entorno podría ser Cloud Functions para Firebase, App Engine o su propio servidor de aplicaciones.

    Un diagrama de las tres capas de arquitectura descritas en esta página.

  2. El backend de FCM, que (entre otras funciones) acepta solicitudes de mensajes, realiza la distribución de mensajes a través de temas y genera metadatos de mensajes, como el ID del mensaje.

  3. Una capa de transporte a nivel de plataforma, que enruta el mensaje al dispositivo de destino, maneja la entrega de mensajes y aplica la configuración específica de la plataforma cuando corresponde. Esta capa de transporte incluye:

    • Capa de transporte de Android (ATL) para dispositivos Android con servicios de Google Play
    • Servicio de notificaciones push de Apple (APN) para dispositivos Apple
    • Protocolo web push para aplicaciones web

  4. El SDK de FCM en el dispositivo del usuario, donde se muestra la notificación o el mensaje se maneja según el estado de primer plano/fondo de la aplicación y cualquier lógica de aplicación relevante.

Flujo del ciclo de vida

  • Registre dispositivos para recibir mensajes de FCM . Una instancia de una aplicación cliente se registra para recibir mensajes y obtiene un token de registro que identifica de forma única la instancia de la aplicación.
  • Enviar y recibir mensajes posteriores .
    • Enviar un mensaje. El servidor de aplicaciones envía mensajes a la aplicación cliente:
      1. El mensaje se redacta, ya sea en el redactor de notificaciones o en un entorno confiable, y se envía una solicitud de mensaje al backend de FCM.
      2. El backend de FCM recibe la solicitud de mensaje, genera un ID de mensaje y otros metadatos y los envía a la capa de transporte específica de la plataforma.
      3. Cuando el dispositivo está en línea, el mensaje se envía al dispositivo a través de la capa de transporte específica de la plataforma.
      4. En el dispositivo, la aplicación cliente recibe el mensaje o notificación.