Usar o Firebase Cloud Messaging (FCM) com chrome.gcm

Envie e receba mensagens para usuários finais com o chrome.gcm. Como foi criado com base no Firebase Cloud Messaging (FCM), ele depende de um serviço externo que você precisa configurar. Este tutorial percorre todas as etapas necessárias para que ele funcione na sua extensão.

Embora chrome.gcm ainda tenha suporte, ele foi criado há mais de uma década, antes do padrão Push. Em geral, é sempre uma prática recomendada usar o padrão da Web em vez de uma API específica da extensão. A menos que você tenha uma necessidade específica de usar chrome.gcm, recomendamos o uso de Push.

Pré-requisitos

Para usar chrome.gcm, você precisa configurar uma conta do Firebase.

página inicial do Firebase.com.
Página inicial do Firebase.com

Depois de criar uma conta, abra o Console do Firebase e selecione um projeto para usar ou crie um novo para sua extensão.

Captura de tela das listagens de projetos no Console do Firebase.
Listagens de projetos no Console do Firebase

Prossiga para a página de configurações do Cloud Messaging.

Captura de tela de uma página de configurações do Firebase Cloud Messaging.
Página de configurações do Firebase Cloud Messaging

Se você já tiver uma conta de mensagens na nuvem neste projeto, copie o ID numérico do remetente listado.

Se as mensagens em nuvem não estiverem ativadas, você precisará ativar a API Firebase Cloud Messaging para o projeto dentro do Google Cloud. Na imagem a seguir, você pode ver onde há um link diretamente para essa página nas configurações do Firebase.

Captura de tela com o local do link para ativar a API Firebase Messaging no Google Cloud.
Abrir o link de configurações do Google Cloud no Firebase

Depois da ativação, volte para a página de configurações do Cloud Messaging e copie o ID do remetente.

Configurar o chrome.gcm

Agora que você tem o ID de remetente do Firebase, configure a extensão para detectar mensagens. Para começar, verifique se você adicionou a permissão gcm ao arquivo manifest.json da sua extensão.

  {
    "manifest_version": 3,
    ...
    "permissions": ["gcm"]

Agora você tem acesso à API chrome.gcm. É possível se registrar para detectar mensagens push chamando chrome.gcm.register.

Ouvir mensagens

Depois que a extensão registrar seu ID de remetente, você precisará adicionar o código para processar as mensagens recebidas.

Firebase sem Firebase

O chrome.gcm sempre passa pelo Firebase, mas o Firebase pode ser configurado para atuar como um proxy de fornecedores externos de mensagens push. Normalmente, os fornecedores listam explicitamente o suporte para as extensões do Chrome. No entanto, qualquer fornecedor que ofereça suporte a notificações push legadas do Firebase deve funcionar. Faça um teste se o provedor oferecer suporte a notificações push legadas do Firebase. Se você tiver problemas, o suporte do provedor deve esclarecer possíveis restrições.

Sobre canais e assuntos

chrome.gcm está usando as APIs legadas do Firebase Messaging. Isso é importante porque a API legada não é compatível com canais de mensagem. Cada mensagem enviada vai para cada cliente. Se a extensão de um usuário estiver interessada apenas em um subconjunto de mensagens, você precisará filtrar.

Embora o Firebase comece como uma conta sem custo financeiro, você recebe uma cobrança quando ultrapassa um determinado limite de uso. Se você planeja enviar mensagens para grupos específicos, a filtragem do lado do cliente pode custar mais do que o garantido. Uma solução alternativa é criar vários projetos para replicar canais individuais (um projeto e um ID de remetente para cada canal). Qualquer extensão pode se registrar para vários IDs de remetente, até 100.

Como alternativa, se você precisar de compatibilidade com canais ou quiser usar notificações push sem passar pelo Firebase, use a API Push.