Visão geral da arquitetura do FCM

O FCM depende do seguinte conjunto de componentes que constroem, transportam e recebem mensagens:

  1. Ferramentas para redigir ou construir solicitações de mensagens. O compositor de Notificações fornece uma opção baseada em GUI para criar solicitações de notificação. Para obter automação e suporte completos para todos os tipos de mensagens , você deve criar solicitações de mensagens em um ambiente de servidor confiável compatível com o SDK Admin do Firebase ou o protocolo de servidor FCM. Esse ambiente pode ser Cloud Functions para Firebase, App Engine ou seu próprio servidor de aplicativos.

    Um diagrama das três camadas de arquitetura descritas nesta página.

  2. O back-end do FCM, que (entre outras funções) aceita solicitações de mensagens, realiza fanout de mensagens por meio de tópicos e gera metadados de mensagens, como o ID da mensagem.

  3. Uma camada de transporte no nível da plataforma, que roteia a mensagem para o dispositivo de destino, trata da entrega da mensagem e aplica configurações específicas da plataforma quando apropriado. Esta camada de transporte inclui:

    • Camada de transporte Android (ATL) para dispositivos Android com Google Play Services
    • Serviço Apple Push Notification (APNs) para dispositivos Apple
    • Protocolo Web Push para aplicativos da Web

  4. O SDK do FCM no dispositivo do usuário, onde a notificação é exibida ou a mensagem é tratada de acordo com o estado de primeiro/segundo plano do aplicativo e qualquer lógica de aplicativo relevante.

Fluxo do ciclo de vida

  • Registre dispositivos para receber mensagens do FCM . Uma instância de um aplicativo cliente se registra para receber mensagens, obtendo um token de registro que identifica exclusivamente a instância do aplicativo.
  • Envie e receba mensagens downstream .
    • Envie uma mensagem. O servidor de aplicativos envia mensagens para o aplicativo cliente:
      1. A mensagem é composta no compositor do Notifications ou em um ambiente confiável, e uma solicitação de mensagem é enviada ao back-end do FCM.
      2. O backend do FCM recebe a solicitação de mensagem, gera um ID de mensagem e outros metadados e os envia para a camada de transporte específica da plataforma.
      3. Quando o dispositivo está online, a mensagem é enviada através da camada de transporte específica da plataforma para o dispositivo.
      4. No dispositivo, o aplicativo cliente recebe a mensagem ou notificação.