O FCM depende do seguinte conjunto de componentes que criam, transportam e recebem mensagens:
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 aos protocolos do servidor FCM. Esse ambiente pode ser o Cloud Functions para Firebase, App Engine ou seu próprio servidor de apps.
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.
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
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:
- 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.
- 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.
- Quando o dispositivo está on-line, a mensagem é enviada por meio da camada de transporte específica da plataforma para o dispositivo.
- No dispositivo, o app cliente recebe a mensagem ou notificação.
- Enviar uma mensagem O servidor do app envia mensagens para o app cliente: