Você pode enviar e receber mensagens para usuários finais com browser.gcm. Como ele é criado com base no Firebase Cloud Messaging (FCM), ele depende de um serviço externo que você precisa configurar. Este tutorial mostra todas as etapas necessárias para fazer isso funcionar na sua extensão.
Embora o browser.gcm ainda seja compatível, 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 browser.gcm, recomendamos o uso de Push.
Pré-requisitos
Para usar browser.gcm, você precisa configurar uma conta do Firebase.
Depois de criar uma conta, abra o console do Firebase e selecione um projeto para usar ou crie um novo para sua extensão.
Continue até a página de configurações do Cloud Messaging.
Se você tiver uma conta de mensagens na nuvem nesse projeto, copie o ID do remetente numérico listado.
Se você não tiver o Cloud Messaging ativado, será necessário ativar a API Firebase Cloud Messaging para o projeto no Google Cloud. Na imagem a seguir, você pode ver onde há um link direto para esta página nas configurações do Firebase.
Depois de ativar, volte para a página de configurações do Cloud Messaging e copie o ID do remetente.
Configurar browser.gcm
Agora que você tem o ID do remetente do Firebase, configure a extensão
para detectar mensagens. Para começar, verifique se você adicionou a permissão gcm ao manifest.json da extensão.
{
"manifest_version": 3,
...
"permissions": ["gcm"]
Agora você tem acesso à API browser.gcm. Você pode se inscrever para ouvir mensagens
push chamando browser.gcm.register
Ouvir mensagens
Depois que a extensão registrar seu ID do remetente, adicione o código para processar mensagens recebidas.
Firebase sem o Firebase
Embora o browser.gcm sempre passe pelo Firebase, é possível configurar o Firebase para
atuar como um proxy para fornecedores externos de mensagens push. Normalmente, os fornecedores listam explicitamente o suporte para extensões do Chrome. No entanto, qualquer fornecedor que ofereça suporte às notificações push legadas do Firebase deve funcionar. Se o provedor oferecer suporte às notificações push legadas do Firebase, teste essa opção. Se você tiver problemas, o suporte dos provedores poderá esclarecer as restrições.
Sobre canais e temas
browser.gcm está usando as APIs legadas do Firebase Messaging. Isso é importante porque a API legada não oferece suporte a canais de mensagens. Todas as mensagens enviadas vão para todos os clientes. Se a extensão de um usuário tiver interesse apenas em um
subconjunto de mensagens, você precisará fazer a filtragem.
Embora o Firebase comece como uma conta sem custo financeiro, você vai receber cobranças quando ultrapassar um determinado limite de uso. Se você planeja enviar mensagens para grupos específicos, a filtragem do lado do cliente pode acabar custando mais do que o esperado. Para contornar isso, crie vários projetos para replicar canais individuais (um projeto e um ID do remetente para cada canal). Uma extensão pode se registrar em vários IDs de remetente, até 100.
Como alternativa, se você precisar de suporte para canais ou quiser usar notificações push sem passar pelo Firebase, use a API Push.