Pular para o conteúdo principal
Para enviar notificações push aos usuários que baixam seu aplicativo Android pela Google Play Store, você deve criar e carregar uma chave privada de Conta de Serviço do Firebase Cloud Messaging (FCM) no OneSignal.
Estas instruções não se aplicam a:

Requisitos


Criar uma chave privada de Conta de Serviço do Firebase \

1

Criar ou abrir seu Projeto Firebase

Vá para o seu console do Firebase e crie ou selecione um projeto.
Console do Firebase exibindo a lista de projetos disponíveis
2

Habilitar a API Firebase Cloud Messaging V1

Em Project settings, selecione a aba Cloud Messaging.
Configurações do projeto Firebase exibindo a aba Cloud Messaging com o status da API Firebase Cloud Messaging (V1) como Enabled
Verifique o status da API Firebase Cloud Messaging (V1):
  • Se exibir Enabled (marca verde), continue para o próximo passo.
  • Se exibir Disabled, clique no menu de 3 pontos > Manage API in Google Cloud Console. No Google Cloud Console, clique em Enable e aguarde até que a marca verde apareça com “API Enabled”.
Página da API Firebase Cloud Messaging do Google Cloud Console exibindo o status API Enabled com uma marca verde
Este é um bom momento para verificar se sua Conta de Serviço do Firebase tem as permissões necessárias:
  • cloudmessaging.messages.create
  • firebase.projects.get
Projetos Firebase recém-criados geralmente possuem essas permissões na Conta de Serviço padrão. Verifique antes de continuar se não tiver certeza ou se estiver trabalhando com um projeto mais antigo. Veja Como verifico as permissões da minha Conta de Serviço? para mais detalhes.
3

Gerar uma nova chave privada

De volta em Project settings, selecione a aba Service accounts e clique em Generate new private key.
Aba Service accounts nas configurações do projeto Firebase exibindo o botão Generate new private key
Confirme clicando em Generate key no pop-up.
Diálogo de confirmação do Firebase para gerar uma nova chave privada para a Conta de Serviço
A chave privada baixada contém credenciais sensíveis. Não a compartilhe nem a inclua no controle de versão.
Salve o arquivo .json em um local seguro. Você precisará dele na próxima seção.

Carregar a chave privada de Conta de Serviço no OneSignal

No seu painel do OneSignal:
1

Abrir as configurações de Android

Vá para Settings > Push & In-App > Platforms > Google Android (FCM).Clique em Activate (configuração inicial) ou Settings (se o Android já estiver configurado).
Configurações Push & In-App do OneSignal exibindo a aba Platforms com o bloco Google Android (FCM) e um botão Settings
2

Carregar sua chave privada de Conta de Serviço

Clique em Select file e escolha a chave privada .json que você salvou na seção anterior.
Tela de configuração Google Android (FCM) do OneSignal com o campo de upload do arquivo Service Account JSON e o botão Select file
3

Salvar e continuar

Clique em Save & Continue. O OneSignal valida a chave privada e o leva para o próximo passo do fluxo de configuração, onde você seleciona seu SDK.
Se o painel exibir Invalid request ou outros erros, sua Conta de Serviço provavelmente está sem um ou mais papéis necessários. Veja Como verifico as permissões da minha Conta de Serviço?.
Seu aplicativo OneSignal agora está conectado ao Firebase Cloud Messaging (V1). A seguir, siga a Configuração do SDK Mobile para o SDK que você está usando para instalar e inicializar o OneSignal no seu aplicativo.

Perguntas Frequentes

Como verifico as permissões da minha Conta de Serviço? \

As permissões da Conta de Serviço são gerenciadas no Google Cloud Console, não no console do Firebase. A Conta de Serviço cuja chave privada você carrega no OneSignal deve ter ambas:
  • cloudmessaging.messages.create — concedida por Firebase Cloud Messaging API Admin (roles/firebasecloudmessaging.admin).
  • firebase.projects.get — concedida por Firebase Viewer (roles/firebase.viewer).
Papéis mais amplos como Firebase Admin (roles/firebase.admin), Editor ou Owner também incluem ambas as permissões e satisfazem o requisito. Para Contas de Serviço dedicadas apenas ao OneSignal, prefira o par estreito acima para limitar o impacto se a chave privada for exposta. Se o painel do OneSignal exibir Invalid request após o upload da chave privada da Conta de Serviço, papéis ausentes são a causa mais comum.
1

Abrir IAM no Google Cloud Console

Faça login no Google Cloud Console, selecione o projeto vinculado ao seu aplicativo Firebase e vá para IAM & Admin > IAM.
2

Encontrar sua Conta de Serviço

Corresponda o e-mail do principal ao campo client_email na chave privada carregada.
3

Adicionar quaisquer papéis ausentes

Clique no ícone de lápis (editar) e clique em Add another role para adicionar qualquer dos papéis se ainda não estiver atribuído.
4

Salvar

Clique em Save. As alterações de IAM podem levar um minuto para serem aplicadas.

Por que estou vendo “This configuration is for a different Firebase Project”?

Este erro ocorre quando a chave privada carregada pertence a um projeto Firebase diferente (um Sender ID diferente). Solução: Use a chave privada do projeto Firebase original. Se não estiver disponível, entre em contato com support@onesignal.com com seu App ID. Trocar projetos redefine os tokens push. Seus usuários devem reabrir o aplicativo para receber push novamente.

Posso alterar meu Sender ID?

Sim, mas isso impactará seus usuários existentes. Os tokens de dispositivo estão vinculados ao Sender ID original. Alterá-lo invalidará os tokens existentes.
Os usuários deixarão de receber notificações push até que reabram o aplicativo e gerem novos tokens.
Se precisar de ajuda, entre em contato com support@onesignal.com com seu App ID.

Por que não vejo um Sender ID no OneSignal?

Se sua chave de servidor Firebase se parece com AIz..., você provavelmente está usando uma configuração desatualizada do Google Cloud Messaging (GCM). Crie um novo projeto Firebase e carregue uma chave privada de Conta de Serviço.

Preciso atualizar meu código ao mudar para FCM V1?

Nenhuma alteração no aplicativo ou no SDK é necessária. Esta é uma atualização apenas no painel.

Qual é o prazo para mudar para FCM V1?

As APIs legadas do FCM do Google estão agora totalmente descontinuadas. Se você ainda está usando as APIs legadas, deve migrar para o FCM V1 imediatamente.

Como posso verificar quais aplicativos ainda usam a API legada?

Chame a API View an app para cada aplicativo e verifique o campo fcm_v1_service_account_json na resposta:
  • Presente e não vazio: o aplicativo está no FCM V1.
  • Ausente ou vazio: o aplicativo não está configurado para FCM V1. Se o aplicativo envia push Android, ainda está na API legada e deve ser migrado.
Para listar primeiro seus aplicativos e seus App IDs, use a API View apps.

O que é Firebase Cloud Messaging e por que o OneSignal precisa de uma chave privada de Conta de Serviço? \

Firebase Cloud Messaging (FCM) é o serviço do Google para entregar notificações push a dispositivos Android. Uma Conta de Serviço é uma identidade do Google que o OneSignal usa para se autenticar no seu projeto Firebase, e sua chave privada é um arquivo JSON que comprova a identidade. Carregar a chave privada autoriza o OneSignal a enviar push pelo Firebase em seu nome. Para mais detalhes, veja a documentação de Conta de Serviço do Google.

Páginas relacionadas

Configuração do SDK Mobile

Instale e inicialize o SDK do OneSignal no seu aplicativo Android.

Configuração de push mobile

Passos de configuração específicos para Android, iOS e outras plataformas mobile.

Configuração de push Huawei

Autorize o OneSignal a enviar push para aplicativos Huawei distribuídos pela Huawei App Gallery.

Configuração de push web

Configure notificações push para sites.