Visão geral da arquitetura do FCM
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
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 ao protocolo do servidor do 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:
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.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-08-16 UTC.
[null,null,["Última atualização 2025-08-16 UTC."],[],[],null,["\u003cbr /\u003e\n\nFCM relies on the following set of components that build, transport, and receive\nmessages:\n\n1. Tooling to compose or build message requests. The Notifications composer\n provides a GUI-based option for creating notification requests.\n For full automation and support for all\n [message types](https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages),\n you must build message requests in a trusted\n [server environment](https://firebase.google.com/docs/cloud-messaging/server)\n that supports the Firebase Admin SDK or the FCM server protocol.\n This environment could be Cloud Functions for Firebase, App Engine,\n or your own app server.\n\n2. The FCM backend, which (among other functions) accepts message requests,\n performs fanout of messages via topics, and generates message metadata such\n as the message ID.\n\n3. A platform-level transport layer, which routes the message to the targeted\n device, handles message delivery, and applies platform-specific\n configuration where appropriate. This transport layer includes:\n\n - Android transport layer (ATL) for Android devices with Google Play services\n - Apple Push Notification service (APNs) for Apple devices\n - Web push protocol for web apps\n\n | **Note:** Platform-level transport layers are outside the core FCM product. FCM messages routed to a platform-level transport layer may be subject to terms specific to that platform rather than FCM's terms of service. Android message routing via ATL falls under the [Google APIs terms of service](https://www.google.com/url?q=https://developers.google.com/terms/&sa=D&ust=1558536676246000&usg=AFQjCNFrlRMLv51d1S9NkWxD0IoYSqJ2Ng).\n4. The FCM SDK on the user's device, where the notification is displayed or\n the message is handled according to the app's foreground/background state\n and any relevant application logic.\n\nLifecycle flow\n\n- **Register devices to receive messages from FCM**. An instance of a client app registers to receive messages, obtaining a registration token that uniquely identifies the app instance.\n- **Send and receive downstream messages** .\n - Send a message. The app server sends messages to the client app:\n 1. The message is composed, either in the Notifications composer or a trusted environment, and a message request is sent to the FCM backend.\n 2. The FCM backend receives the message request, generates a message ID and other metadata, and sends it to the platform specific transport layer.\n 3. When the device is online, the message is sent via the platform-specific transport layer to the device.\n 4. On the device, the client app receives the message or notification."]]