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.
Depois de criar uma conta, abra o Console do Firebase e selecione um projeto para usar ou crie um novo para sua extensão.
Prossiga para a página de configurações do 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.
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.