FCM se basa en el siguiente conjunto de componentes que compilan, transportan y reciben mensajes:
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 del servidor de FCM o del SDK de Firebase Admin. Este entorno podría ser Cloud Functions para Firebase, App Engine o tu propio servidor de apps.
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.
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 Apple
Protocolo web push para aplicaciones web
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:
- El mensaje se redacta en el Compositor de Notifications o en un entorno de confianza, y se envía una solicitud de mensaje al backend de FCM.
- 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.
- 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.
- En el dispositivo, la app cliente recibe el mensaje o la notificación.
- Envía un mensaje. El servidor de apps envía mensajes a la app cliente: