Configure um Projeto no Firebase
Crie um projeto no Console do Firebase e registre seu app (Android, iOS, Web, etc.)
para obter o arquivo de configuração (google-services.json ou
GoogleService-Info.plist).
O Firebase Cloud Messaging (FCM) é a solução multiplataforma do Google para enviar mensagens e notificações de forma confiável para apps Android, iOS, Web, Flutter e Unity. O funcionamento básico envolve um servidor confiável (como o Firebase Admin SDK ou a API HTTP v1) que envia solicitações ao backend do FCM, e este encaminha as mensagens para os dispositivos através das camadas de transporte específicas de cada plataforma (ATL no Android, APNs na Apple e Web Push na Web).
Abaixo estão os passos gerais de uso e todos os requisitos que você precisa atender, de acordo com a documentação oficial do site da Firebase.
Crie um projeto no Console do Firebase e registre seu app (Android, iOS, Web, etc.)
para obter o arquivo de configuração (google-services.json ou
GoogleService-Info.plist).
AndroidManifest.xml para incluir
um serviço que estenda FirebaseMessagingService (necessário para lidar
com mensagens em primeiro plano e payloads de dados).
Cada instância do app precisa se registrar no FCM para receber um
token de registro único, que identifica o dispositivo. No Android/iOS,
isso é feito automaticamente pelo SDK; na Web, é necessário chamar
getToken() com as chaves VAPID.
O app deve ser aberto pelo menos uma vez para que o registro ocorra. No Android, se o usuário forçar a parada do app, ele precisa ser reaberto manualmente para que as mensagens voltem a funcionar.
iOS, macOS, Web e Android 13 (ou superior): antes de receber payloads
do FCM, é obrigatório solicitar a permissão do usuário. Use a API
requestPermission() (Flutter) ou os métodos nativos de cada plataforma.
Segundo o site da Firebase.
POST_NOTIFICATIONS, mas você deve solicitá-la em tempo de
execução.
Se você for enviar mensagens programaticamente (e não apenas pelo console), seu servidor (ou ambiente confiável, como Cloud Functions) deve atender aos seguintes critérios:
Enviar requisições formatadas corretamente para o backend do FCM.
Gerenciar requisições e reenvios utilizando recuo exponencial (exponential backoff) em caso de falhas.
Armazenar com segurança as credenciais de autorização do servidor e os tokens de registro dos clientes.
Dependendo da funcionalidade, você precisará de uma ou mais destas credenciais:
Identificador único do projeto Firebase, usado nas requisições ao endpoint HTTP v1.
String única que identifica cada instância do app cliente. Necessário para mensagens direcionadas a dispositivos e grupos.
⚠ Deve ser mantido em segredo.Valor numérico único criado com o projeto, que identifica quem pode enviar mensagens para o app cliente.
Token OAuth 2.0 de curta duração, usado para autorizar requisições à API HTTP v1. Está associado à conta de serviço do projeto.
No Android, se o usuário forçar a parada do app pelas configurações do dispositivo, ele precisará ser reaberto manualmente para que as mensagens voltem a ser recebidas. No iOS, se o usuário deslizar o app para fora do seletor de apps, ele também precisa ser reaberto manualmente para que as mensagens em segundo plano funcionem.
O tratamento de mensagens varia conforme o estado do app (aberto, em segundo plano ou
finalizado). Para mensagens em primeiro plano, é necessário ouvir o stream
onMessage (Flutter) ou implementar o serviço apropriado (Android).
Esses são os requisitos e o fluxo de uso conforme a documentação oficial do Firebase. Para detalhes específicos de implementação, vale a pena consultar os guias passo a passo de cada plataforma no site da Firebase.