Visão geral da arquitetura do FCM

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

  1. Ferramentas para escrever ou criar solicitações de mensagens. O Editor do Notificações tem uma opção baseada em GUI para criar solicitações de notificação. Caso queira automação e suporte completos para todos os tipos de mensagens, é necessário criar solicitações de mensagens em um ambiente de servidor confiável que oferece suporte ao SDK Admin do Firebase ou ao protocolo do servidor do FCM. Esse ambiente pode ser o Cloud Functions para Firebase, App Engine ou seu próprio servidor de apps.

    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 a distribuição de mensagens por tópicos e gera metadados de mensagens, como o ID da mensagem.

  3. Uma camada de transporte no nível da plataforma, que encaminha a mensagem para o dispositivo de destino, processa a entrega da mensagem e aplica a configuração específica da plataforma quando apropriado. Essa camada de transporte inclui:

    • Camada de transporte do Android (ATL) para dispositivos Android com o Google Play Services
    • Serviço de notificação push da Apple (APNs) para dispositivos da Apple
    • Protocolo de push da Web para aplicativos da Web

  4. O SDK do FCM no dispositivo do usuário, em que a notificação é exibida ou a mensagem é processada de acordo com o estado em primeiro plano/segundo plano 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 a instância do aplicativo de maneira exclusiva.
  • Enviar e receber mensagens downstream.
    • Enviar uma mensagem O servidor do app envia mensagens para o app cliente:
      1. A mensagem é escrita no Editor do Notificações ou em um ambiente confiável, e uma solicitação de mensagem é enviada ao back-end do FCM.
      2. O back-end 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á on-line, a mensagem é enviada por meio da camada de transporte específica da plataforma para o dispositivo.
      4. No dispositivo, o app cliente recebe a mensagem ou notificação.