O lado do servidor do Firebase Cloud Messaging consiste em dois componentes:
- O back-end do FCM fornecido pelo Google.
- Seu servidor do app ou outro ambiente de servidor confiável em que sua lógica de servidor é executada, como o Cloud Functions para Firebase ou outros ambientes de nuvem gerenciados pelo Google.
O servidor do app ou ambiente de servidor confiável envia solicitações de mensagens para o back-end do FCM, que, em seguida, encaminha as mensagens para apps cliente em execução nos dispositivos dos usuários.
Requisitos do ambiente de servidor confiável
Seu ambiente de servidor do app precisa atender aos critérios a seguir:
- Capacidade de enviar solicitações de mensagens formatadas corretamente para o back-end do FCM.
- Capacidade de gerenciar solicitações e reenviá-las usando o recuo exponencial.
- Capacidade de armazenar com segurança as credenciais de autorização do servidor e os tokens de registro do cliente.
Credenciais necessárias para o Projeto do Firebase
Dependendo dos recursos do FCM implementados, as seguintes credenciais do projeto do Firebase podem ser necessárias:
Credencial | Descrição |
---|---|
ID do projeto | Um identificador exclusivo do projeto do Firebase usado em solicitações para o endpoint HTTP v1 do FCM. Esse valor está disponível no painel Configurações do console Firebase. |
Token de registro | Uma string de token exclusiva que identifica cada instância do app cliente. O token de registro é necessário para mensagens para dispositivos únicos e grupos de dispositivos. Observe que os tokens de registro precisam ser mantidos em segredo. |
Código do remetente | Um valor numérico exclusivo gerado quando você cria o projeto do Firebase, disponível na guia Cloud Messaging do painel Configurações do console Firebase. O ID do remetente é o mesmo que o número do projeto. O ID do remetente é usado para identificar cada remetente que pode enviar mensagens ao app cliente. |
Token de acesso | Um token OAuth 2.0 de curta duração que autoriza solicitações para a API HTTP v1. Esse token está associado a uma conta de serviço que pertence ao seu projeto do Firebase. Para criar e alternar tokens de acesso, siga as etapas descritas em Autorizar solicitações de envio. |
Escolher uma opção de servidor
Você precisará decidir como interagir com os servidores FCM: usando o Firebase Admin SDK ou a API HTTP v1 do FCM. Devido ao suporte a linguagens de programação populares e aos métodos convenientes para processar autenticação e autorização, o Firebase Admin SDK é o método recomendado.
Opções para interagir com os servidores FCM incluem o seguinte:
O Firebase Admin SDK, que tem suporte para Node, Java, Python, C# e Go.
A API HTTP v1 do FCM, uma API REST com autorização segura e recursos flexíveis de mensagens entre plataformas. O Firebase Admin SDK é baseado nesse protocolo e oferece todas as vantagens dele.
Firebase Admin SDK
O Firebase Admin SDK manipula a autenticação com o back-end e facilita o envio de mensagens e o gerenciamento de assinaturas de tópicos. Com o Firebase Admin SDK, você pode:
- enviar mensagens para dispositivos individuais;
- Enviar mensagens para tópicos e declarações de condição que correspondam a um ou mais tópicos
- Como enviar mensagens para grupos de dispositivos
- assinar e cancelar a assinatura de dispositivos de e para tópicos;
- criar payloads de mensagens adaptados a diferentes plataformas de destino.
Para configurar o Firebase Admin SDK, consulte Adicionar o Firebase Admin SDK ao seu servidor. Se você já tem um projeto do Firebase, comece com Adicionar o SDK. Além disso, ative a API Firebase Cloud Messaging (V1) na página de configurações do Cloud Messaging do seu projeto. Em seguida, depois que o Firebase Admin SDK for instalado, comece a escrever a lógica para criar solicitações de envio.
FCM HTTP v1 API
O FCM fornece a API HTTP v1 do FCM para desenvolvedores que preferem um protocolo de servidor bruto.
Para enviar uma mensagem, o servidor do app emite uma solicitação POST com um cabeçalho HTTP e um corpo HTTP composto por pares de chave-valor JSON. Para detalhes sobre as opções de cabeçalho e corpo, consulte Enviar uma mensagem usando a API HTTP v1 do FCM.