> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Credenciais do Android Firebase

> Configure as credenciais de Conta de Serviço do Firebase Cloud Messaging (FCM) no OneSignal para habilitar notificações push do Android para aplicativos na Google Play Store.

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.

<Note>
  Estas instruções não se aplicam a:

  * **Web Push.** Os dispositivos Android podem se inscrever no seu site ou PWA sem uma Conta de Serviço FCM. Veja [Configuração de push web](./web-push-setup).
  * **Aplicativos Huawei distribuídos pela Huawei App Gallery.** Veja [Autorização da Huawei](./authorize-onesignal-to-send-huawei-push).
</Note>

***

## Requisitos

* Um aplicativo Android distribuído pela Google Play Store
* Uma [conta OneSignal](https://onesignal.com)
* Uma [conta Firebase (gratuita)](https://firebase.google.com)
* Uma chave privada de Conta de Serviço do Firebase com as permissões `cloudmessaging.messages.create` e `firebase.projects.get`
  * Se não tiver uma, siga os passos para [criar uma chave privada de Conta de Serviço do Firebase](#create-a-firebase-service-account-private-key)
  * Se você já possui uma chave privada, [verifique as permissões existentes](#how-do-i-check-my-service-account-permissions)

***

<h2 id="create-a-firebase-service-account-private-key">
  Criar uma chave privada de Conta de Serviço do Firebase \\
</h2>

<Steps>
  <Step title="Criar ou abrir seu Projeto Firebase">
    Vá para o seu [console do Firebase](https://console.firebase.google.com/) e crie ou selecione um projeto.

    <Frame caption="Página de Projetos dentro do Firebase">
      <img src="https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-projects.png?fit=max&auto=format&n=uWz0BIZj_JUi1RGq&q=85&s=aca8614ec0e40fc63fd71f3160098778" alt="Console do Firebase exibindo a lista de projetos disponíveis" width="2656" height="1780" data-path="images/mobile/firebase-projects.png" />
    </Frame>
  </Step>

  <Step title="Habilitar a API Firebase Cloud Messaging V1">
    Em **Project settings**, selecione a aba **Cloud Messaging**.

    <Frame caption="Aba Cloud Messaging nas configurações do projeto Firebase">
      <img src="https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-project-settings-cloud-messaging.png?fit=max&auto=format&n=uWz0BIZj_JUi1RGq&q=85&s=e877c1d0ca51b85b1f2e80418e0195c4" alt="Configurações do projeto Firebase exibindo a aba Cloud Messaging com o status da API Firebase Cloud Messaging (V1) como Enabled" width="2956" height="1140" data-path="images/mobile/firebase-project-settings-cloud-messaging.png" />
    </Frame>

    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".

    <Frame caption="API Firebase Cloud Messaging habilitada no Google Cloud Console">
      <img src="https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-cloud-messaging-api-v1-enabled.png?fit=max&auto=format&n=uWz0BIZj_JUi1RGq&q=85&s=9239c8baa0659152d8aed6fc6af810a7" alt="Página da API Firebase Cloud Messaging do Google Cloud Console exibindo o status API Enabled com uma marca verde" width="1616" height="750" data-path="images/mobile/firebase-cloud-messaging-api-v1-enabled.png" />
    </Frame>

    <Note>
      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?](#how-do-i-check-my-service-account-permissions) para mais detalhes.
    </Note>
  </Step>

  <Step title="Gerar uma nova chave privada">
    De volta em **Project settings**, selecione a aba **Service accounts** e clique em **Generate new private key**.

    <Frame caption="Seção de Contas de Serviço dentro do Firebase">
      <img src="https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-project-settings-service-accounts.png?fit=max&auto=format&n=uWz0BIZj_JUi1RGq&q=85&s=d0b4a6d7c84cd1a639b6de79c3789363" alt="Aba Service accounts nas configurações do projeto Firebase exibindo o botão Generate new private key" width="2978" height="1734" data-path="images/mobile/firebase-project-settings-service-accounts.png" />
    </Frame>

    Confirme clicando em **Generate key** no pop-up.

    <Frame caption="Gerar a chave privada para a Conta de Serviço.">
      <img src="https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-generate-new-private-key.png?fit=max&auto=format&n=uWz0BIZj_JUi1RGq&q=85&s=6b3ca4145c180400cf80a434adbbc216" alt="Diálogo de confirmação do Firebase para gerar uma nova chave privada para a Conta de Serviço" width="1432" height="572" data-path="images/mobile/firebase-generate-new-private-key.png" />
    </Frame>

    <Warning>
      A chave privada baixada contém credenciais sensíveis. Não a compartilhe nem a inclua no controle de versão.
    </Warning>

    Salve o arquivo `.json` em um local seguro. Você precisará dele na próxima seção.
  </Step>
</Steps>

***

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

No seu painel do OneSignal:

<Steps>
  <Step title="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).

    <Frame caption="Tela de Plataformas nas configurações do aplicativo OneSignal">
      <img src="https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/onesignal-push-platforms.png?fit=max&auto=format&n=uWz0BIZj_JUi1RGq&q=85&s=9b8af64aae3dd5fdcb715731710785ca" alt="Configurações Push & In-App do OneSignal exibindo a aba Platforms com o bloco Google Android (FCM) e um botão Settings" width="2496" height="648" data-path="images/mobile/onesignal-push-platforms.png" />
    </Frame>
  </Step>

  <Step title="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.

    <Frame caption="Tela de configuração FCM">
      <img src="https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/onesignal-fcm-configuration.png?fit=max&auto=format&n=uWz0BIZj_JUi1RGq&q=85&s=5fb6b977bf1517c453b1c0b0c9b57274" alt="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" width="1780" height="702" data-path="images/mobile/onesignal-fcm-configuration.png" />
    </Frame>
  </Step>

  <Step title="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.

    <Warning>
      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?](#how-do-i-check-my-service-account-permissions).
    </Warning>
  </Step>
</Steps>

<Check>
  Seu aplicativo OneSignal agora está conectado ao Firebase Cloud Messaging (V1). A seguir, siga a [Configuração do SDK Mobile](./mobile-sdk-setup) para o SDK que você está usando para instalar e inicializar o OneSignal no seu aplicativo.
</Check>

***

## Perguntas Frequentes

<h3 id="how-do-i-check-my-service-account-permissions">
  Como verifico as permissões da minha Conta de Serviço? \\
</h3>

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.

<Steps>
  <Step title="Abrir IAM no Google Cloud Console">
    Faça login no [Google Cloud Console](https://console.cloud.google.com/), selecione o projeto vinculado ao seu aplicativo Firebase e vá para **IAM & Admin > IAM**.
  </Step>

  <Step title="Encontrar sua Conta de Serviço">
    Corresponda o e-mail do principal ao campo `client_email` na chave privada carregada.
  </Step>

  <Step title="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.
  </Step>

  <Step title="Salvar">
    Clique em **Save**. As alterações de IAM podem levar um minuto para serem aplicadas.
  </Step>
</Steps>

### 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.

<Warning>
  Os usuários deixarão de receber notificações push até que reabram o aplicativo e gerem novos tokens.
</Warning>

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](/reference/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](/reference/view-apps).

<h3 id="what-is-firebase-cloud-messaging-and-why-does-onesignal-need-a-service-account-private-key">
  O que é Firebase Cloud Messaging e por que o OneSignal precisa de uma chave privada de Conta de Serviço? \\
</h3>

**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](https://cloud.google.com/iam/docs/service-account-overview).

***

## Páginas relacionadas

<Columns cols={2}>
  <Card title="Configuração do SDK Mobile" icon="mobile-screen" href="./mobile-sdk-setup">
    Instale e inicialize o SDK do OneSignal no seu aplicativo Android.
  </Card>

  <Card title="Configuração de push mobile" icon="bell" href="./mobile-push-setup">
    Passos de configuração específicos para Android, iOS e outras plataformas mobile.
  </Card>

  <Card title="Configuração de push Huawei" icon="mobile" href="./authorize-onesignal-to-send-huawei-push">
    Autorize o OneSignal a enviar push para aplicativos Huawei distribuídos pela Huawei App Gallery.
  </Card>

  <Card title="Configuração de push web" icon="globe" href="./web-push-setup">
    Configure notificações push para sites.
  </Card>
</Columns>
