Um cliente OAuth2 já existe para este nome de pacote e SHA-1 em outro projeto

Por que estou vendo esta mensagem?

Esse erro ocorre quando detectamos que outro projeto do Firebase ou Google Cloud contém um ID de cliente do OAuth 2.0 com o nome de pacote e SHA-1 especificados. Quando você adiciona o Firebase a um app do Android no Console do Firebase, tentamos gerar um ID de cliente do Google OAuth 2.0 para seu app, que é usado para autenticar o app com algumas APIs do Google, como App Invites ou Drive API. Por motivos de segurança, cada pareamento de nome de pacote e impressão digital SHA-1 usado para criar um ID de cliente do OAuth 2.0 deve ser único em todos os projetos do Firebase e Google Cloud.

Que impacto isso pode ter no meu app?

Atualmente, dois recursos do Firebase exigem a configuração do nome de pacote e SHA-1 para seus apps do Android:

  • Invites: não funciona se um SHA-1 não for fornecido. Não há forma de usar um SHA-1 de outro projeto atualmente.
  • Authentication: para usar o Google como provedor de autenticação, você deve incluir manualmente o ID de cliente de seu projeto existente na lista de permissões da configuração de login.

O que posso fazer?

Se você não usar o Firebase invites ou o Google como seu provedor de login do Firebase Auth, não é preciso fazer nada. Se você usar um desses recursos, veja qual dos cenários a seguir descreve melhor sua situação:

Eu sei qual projeto do Google Cloud contém o ID de cliente do OAuth 2.0 conflitante e não me importo de excluir meu projeto do Firebase, ou preciso usar o Invites.
Essa abordagem não é recomendada se seu app do Firebase já estiver em produção ou se você tiver dados do Analytics ou de falhas que quiser preservar.

Se você criou o projeto recentemente ou não tiver avançado muito para adicionar o Firebase ao seu app, a abordagem mais simples é excluir seu projeto e importar seu projeto do Google. Para isso:

  1. Exclua seu projeto do Firebase. Essa ação é permanente e excluirá todos os dados associados ao projeto.
  2. Vá para o Console do Firebase.
  3. Clique em Importar projeto do Google.
  4. Selecione o projeto existente que contém o ID de cliente do OAuth 2.0 e clique em Adicionar Firebase.
Não quero importar meu projeto existente e não uso o Invites.

Se você não puder importar seu projeto existente e não planejar usar o Invites, você pode incluir seu ID de cliente do OAuth 2.0 na lista de permissões manualmente para usar o Google como provedor de login.

Primeiro, encontre o ID de cliente do OAuth 2.0 do seu projeto existente. Para isso:

  1. Vá para a página "Credenciais" do Console do Google Cloud. Se o projeto que contém o ID de cliente do OAuth 2.0 não for aberto automaticamente, selecione-o no menu suspenso no canto superior direito da página.
  2. Na seção IDs de cliente do OAuth 2.0, localize o nome do cliente que contém o SHA-1 e o nome do pacote usados em seu projeto do Firebase. Se não tiver certeza de qual é o certo, clique no nome do cliente para ver os detalhes.
  3. Quando localizar o nome do cliente correto, copie o valor completo na coluna "ID de cliente".

Depois, inclua este ID de cliente na lista de permissões para usar o Google como provedor de login. Para isso:

  1. Vá para o Console do Firebase e selecione seu projeto.
  2. Selecione Auth no menu à esquerda.
  3. Selecione a guia Método de login.
  4. Na página Método de login, clique em Google no cartão Provedores de login.
  5. Expanda a opção Adicionar IDs de cliente à lista de permissões a partir de projetos externos.
  6. Cole seu ID de cliente do Console do Cloud no campo de texto e clique em Adicionar.
Eu não sei qual projeto contém o ID de cliente do OAuth 2.0 conflitante.

Se você não souber qual projeto contém o ID de cliente do OAuth 2.0 conflitante, tente estas etapas para localizá-lo:

  1. Vá para a página Credenciais do Console do Google Cloud.
  2. Na seção IDs de cliente do OAuth 2.0, clique no nome do cliente para ver o SHA-1 e o nome do pacote usados para criar o ID de cliente. Repita esse processo até encontrar o nome do cliente correto ou até tentar todos os clientes.

Se você não encontrar um nome de cliente que contenha o SHA-1 e o nome do pacote correspondentes, selecione outro projeto no menu suspenso no canto direito da página e tente o procedimento acima novamente.

Em alguns casos, o cliente do OAuth 2.0 pode estar em um projeto de outra pessoa. Se você não conseguir encontrar o projeto conflitante, entre em contato com o suporte do Firebase e informe o nome do pacote e a impressão digital SHA-1 conflitantes.

Isso foi útil?
Como podemos melhorá-lo?