Descripción general de la arquitectura de FCM

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

  1. Herramientas para redactar o compilar solicitudes de mensajes. El Compositor de Notifications proporciona una opción basada en GUI para crear solicitudes de notificación. Para obtener una automatización completa y compatibilidad con todos los tipos de mensajes, debes crear solicitudes de mensajes en un entorno de servidor de confianza que admita los protocolos de servidor de FCM o del SDK de Firebase Admin. Este entorno podría ser Cloud Functions para Firebase, Google App Engine o tu propio servidor de apps.

  2. El backend de FCM, que (entre otras funciones) acepta solicitudes de mensajes, realiza una 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 la plataforma, que enruta el mensaje al dispositivo de destino, controla la entrega de mensajes y aplica la configuración específica de la plataforma cuando corresponda. Esta capa de transporte incluye lo siguiente:

    • Capa de transporte de Android (ATL) para dispositivos Android con los Servicios de Google Play
    • Servicio de notificaciones push de Apple (APNS) para dispositivos iOS
    • Protocolo web push para aplicaciones web

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

Flujo del ciclo de vida

  • Registra dispositivos para recibir mensajes de FCM. Una instancia de una app cliente se registra para recibir mensajes y obtiene un token de registro que identifica de forma única la instancia de la app.
  • Envía y recibe mensajes descendentes.
    • Envía un mensaje. El servidor de apps envía mensajes a la app cliente:
      1. El mensaje se compone en el Compositor de Notifications o en el entorno de confianza, 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 la 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 a través de la capa de transporte específica de la plataforma.
      4. En el dispositivo, la app cliente recibe el mensaje o la notificación.