Erro de login do Google 12500


106

Estou tentando integrar o Login do Google ao meu aplicativo. Não tenho um servidor back-end, estou apenas obtendo os detalhes da conta do Google conectada em meu aplicativo.

Eu tentei primeiro usando o exemplo de login do Google, mas obtive um erro (nenhuma alteração de código foi feita, exceto para imprimir o rastreamento de pilha abaixo). Acabei de usar o exemplo SignInActivity porque não tenho um servidor back-end.

 Exception com.google.android.gms.common.api.ApiException: 12500: 
 at com.google.android.gms.common.internal.zzb.zzz(Unknown Source)
 at com.google.android.gms.auth.api.signin.GoogleSignIn.getSignedInAccountFromIntent(Unknown Source)
 at com.ewise.android.api.MainActivity.onActivityResult(SignInActivity.java:89)     at android.app.Activity.dispatchActivityResult(Activity.java:7010)
 at android.app.ActivityThread.deliverResults(ActivityThread.java:4187)
 at android.app.ActivityThread.handleSendResult(ActivityThread.java:4234)
 at android.app.ActivityThread.-wrap20(ActivityThread.java)
 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1584)
 at android.os.Handler.dispatchMessage(Handler.java:102)
 at android.os.Looper.loop(Looper.java:154)
 at android.app.ActivityThread.main(ActivityThread.java:6316)
 at java.lang.reflect.Method.invoke(Native Method)
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)

Código

 public class SignInActivity extends AppCompatActivity implements
         View.OnClickListener {

     private static final String TAG = "SignInActivity";
     private static final int RC_SIGN_IN = 9001;

     private GoogleSignInClient mGoogleSignInClient;
     private TextView mStatusTextView;

     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);

         // Views
         mStatusTextView = findViewById(R.id.status);

         // Button listeners
         findViewById(R.id.sign_in_button).setOnClickListener(this);
         findViewById(R.id.sign_out_button).setOnClickListener(this);
         findViewById(R.id.disconnect_button).setOnClickListener(this);

         // [START configure_signin]
         // Configure sign-in to request the user's ID, email address, and basic
         // profile. ID and basic profile are included in DEFAULT_SIGN_IN.
         GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                 .requestEmail()
                 .build();
         // [END configure_signin]

         // [START build_client]
         // Build a GoogleSignInClient with the options specified by gso.
         mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
         // [END build_client]

         // [START customize_button]
         // Set the dimensions of the sign-in button.
         SignInButton signInButton = findViewById(R.id.sign_in_button);
         signInButton.setSize(SignInButton.SIZE_STANDARD);
         signInButton.setColorScheme(SignInButton.COLOR_LIGHT);
         // [END customize_button]
     }

     @Override
     public void onStart() {
         super.onStart();

         // [START on_start_sign_in]
         // Check for existing Google Sign In account, if the user is already signed in
         // the GoogleSignInAccount will be non-null.
         GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);
         updateUI(account);
         // [END on_start_sign_in]
     }

     // [START onActivityResult]
     @Override
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);

         // Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
         if (requestCode == RC_SIGN_IN) {
             // The Task returned from this call is always completed, no need to attach
             // a listener.
             Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
             handleSignInResult(task);
         }
     }
     // [END onActivityResult]

     // [START handleSignInResult]
     private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {
         try {
             GoogleSignInAccount account = completedTask.getResult(ApiException.class);

             // Signed in successfully, show authenticated UI.
             updateUI(account);
         } catch (ApiException e) {
             // The ApiException status code indicates the detailed failure reason.
             // Please refer to the GoogleSignInStatusCodes class reference for more information.
             Log.w(TAG, "signInResult:failed code=" + e.getStatusCode());
             e.printStackTrace();
             updateUI(null);
         }
     }
     // [END handleSignInResult]

     // [START signIn]
     private void signIn() {
         Intent signInIntent = mGoogleSignInClient.getSignInIntent();
         startActivityForResult(signInIntent, RC_SIGN_IN);
     }
     // [END signIn]

     // [START signOut]
     private void signOut() {
         mGoogleSignInClient.signOut()
                 .addOnCompleteListener(this, new OnCompleteListener<Void>() {
                     @Override
                     public void onComplete(@NonNull Task<Void> task) {
                         // [START_EXCLUDE]
                         updateUI(null);
                         // [END_EXCLUDE]
                     }
                 });
     }
     // [END signOut]

     // [START revokeAccess]
     private void revokeAccess() {
         mGoogleSignInClient.revokeAccess()
                 .addOnCompleteListener(this, new OnCompleteListener<Void>() {
                     @Override
                     public void onComplete(@NonNull Task<Void> task) {
                         // [START_EXCLUDE]
                         updateUI(null);
                         // [END_EXCLUDE]
                     }
                 });
     }
     // [END revokeAccess]

     private void updateUI(@Nullable GoogleSignInAccount account) {
         if (account != null) {
             mStatusTextView.setText(getString(R.string.signed_in_fmt, account.getDisplayName()));

             findViewById(R.id.sign_in_button).setVisibility(View.GONE);
             findViewById(R.id.sign_out_and_disconnect).setVisibility(View.VISIBLE);
         } else {
             mStatusTextView.setText(R.string.signed_out);

             findViewById(R.id.sign_in_button).setVisibility(View.VISIBLE);
             findViewById(R.id.sign_out_and_disconnect).setVisibility(View.GONE);
         }
     }

     @Override
     public void onClick(View v) {
         switch (v.getId()) {
             case R.id.sign_in_button:
                 signIn();
                 break;
             case R.id.sign_out_button:
                 signOut();
                 break;
             case R.id.disconnect_button:
                 revokeAccess();
                 break;
         }
     }
  }

Pelo que li, o problema pode ser causado pela geração SHA1 .

Segui o guia completo, mas aparentemente não está funcionando.

Copiei o SHA1 do Gradle SigningReport

Variant: debug
Config: debug
Store: /Users/user/.android/debug.keystore
Alias: AndroidDebugKey
MD5: A3:16:3F:43:75:FE:07:62:6D:8D:CC:DD:21:9F:FA:1A
SHA1: 7B:21:26:7F:D8:18:BB:0E:36:1C:82:DD:B7:28:5F:C1:2F:5C:E4:EA
Valid until: Saturday, August 31, 2047
----------
Variant: release
Config: none
----------
Variant: debugAndroidTest
Config: debug
Store: /Users/user/.android/debug.keystore
Alias: AndroidDebugKey
MD5: A3:16:3F:43:75:FE:07:62:6D:8D:CC:DD:21:9F:FA:1A
SHA1: 7B:21:26:7F:D8:18:BB:0E:36:1C:82:DD:B7:28:5F:C1:2F:5C:E4:EA
Valid until: Saturday, August 31, 2047
----------
Variant: debugUnitTest
Config: debug
Store: /Users/user/.android/debug.keystore
Alias: AndroidDebugKey
MD5: A3:16:3F:43:75:FE:07:62:6D:8D:CC:DD:21:9F:FA:1A
SHA1: 7B:21:26:7F:D8:18:BB:0E:36:1C:82:DD:B7:28:5F:C1:2F:5C:E4:EA
Valid until: Saturday, August 31, 2047

qual poderia ser a possível causa disso?

obrigado

PS Esta pode ser uma causa possível?

Google Play services out of date.  Requires 11720000 but found 10932470

Ei, você pode postar seu código
Dilip

Olá @Dilip, literalmente usei isso :) github.com/googlesamples/google-services/tree/master/android/… . Atualizado mesmo assim
Aaron

1
Então, o que acontece, você obtém o mesmo erro ou qualquer outra coisa acontece. Uma coisa, faça mais uma vez SHA1 manualmente e coloque no console do desenvolvedor em seu APP e verifique o nome do pacote e baixe o arquivo google-services.json e coloque no nível do aplicativo.
Dilip

Sim @Dilip, recebo o mesmo erro. Cruzei o nome do pacote verificado. Até tentei usar outro armazenamento de chaves, mas o resultado é o mesmo.
Aaron

Você precisa fazer alterações no código para obter sua chave de API. E sim, você deve atualizar os serviços do jogo
OneCricketeer

Respostas:


37

Basta atualizar o Google Play Services para a versão mais recente (ou 11720000 neste caso). Se você estiver usando AVD, as imagens do Nexus 5 e 5X são compatíveis com o Google Play. Assim que o emulador estiver instalado e funcionando, vá para o menu Extended Controls> Google Play e atualize.


Como fazer isso em dispositivos Samsung?
Pinkesh Darji

7
Este não é o problema no meu caso. Os serviços do Google Play já estão atualizados.
Adam Hurwitz

A solução de @zub0r em relação aos links de projeto e privacidade deve ser aceita como a resposta correta.
Adam Hurwitz

Por favor, onde está o menu de controles estendidos, no emulador ou no Visual Studio?
George Udosen

121

Erro PlatformException (sign_in_failed, com.google.android.gms.common.api.ApiException: 12500:, null)

Este erro 12500 pode ser resolvido adicionando um endereço de e-mail de suporte ao seu projeto nas configurações do projeto. Abra o link https://console.firebase.google.com/

Selecione Seu projeto e abra a guia de configurações.

Forneça um e-mail de suporte válido e reinicie seu aplicativo agora.

insira a descrição da imagem aqui


9
Obrigado cara! Esse erro é bastante enigmático, pode significar qualquer uma das coisas mencionadas nas respostas aqui. Meu problema era este :(
Billda

3
Eu fiz tudo mencionado no console do desenvolvedor developers.google.com/identity/sign-in/android/sign-in e depois de passar um dia tentando colocar a impressão digital SHA-1 e tudo isso era o problema. Você ajudou. Muito obrigado!
classe Android

Tente adicionar a chave SHA1 para seu projeto @RohitSingh
Maddu Swaroop

1
@MadduSwaroop Se ao menos houvesse uma maneira de votar a favor duas vezes ... obrigado senhor
Lefty

1
Você salvou meu dia
Houssem

46

Verifique se as impressões digitais SHA-1 foram adicionadas às configurações do projeto do Firebase. Caso contrário, encontre a impressão digital SHA-1 usando

https://developers.google.com/android/guides/client-auth

Além disso, encontre a impressão digital SHA-1 da chave de liberação usando

keytool -list -v -keystore <keystore path>

Remova <keystore path>com o caminho do armazenamento de chaves.

Em seguida, adicione as duas impressões digitais SHA-1 às configurações do Firebase projects.

NB: Não se esqueça de substituir google-services.json por google-services.json atualizado com novas impressões digitais. Perdi dois dias nisso.

Durante a depuração

O Android Studio gera automaticamente ~/.android/debug.keystorena primeira compilação de depuração e usa-o para assinar o aplicativo.

Para obter o SHA-1 execute (senha android) ( doc ):

keytool -exportcert -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore

Isso SHA-1deve ser adicionado às configurações do aplicativo em firebasepara permitir o uso dos recursos de login do Google durante o teste de compilação de depuração.


2
Como você tem certeza de que ele está usando o Firebase?
PaulG

Adivinhei (semelhança no código e sem servidor). O projeto do Firebase também está conectado ao console do GCP. Também podemos alterar as impressões digitais nas credenciais do GCP.
Niyas Nazar

mesmo erro com, mas no meu caso não estava relacionado ao firebase (não estou usando).
Majed DH

Vá para console.developers.google.com/apis/credentials. Adicione uma nova credencial (O Auth Client) com a chave SHA. (O Firebase faz isso automaticamente para nossos projetos do Firebase)
Niyas Nazar

O arquivo google-services.json pode ser encontrado no diretório do app dentro do seu projeto. (Acesse Finder / File Explorer)
Mehul Tandale

43

 para o erro 12500, você precisa adicionar support gmail nas configurações do firebase apenas e para o erro 10, adicione a impressão digital ssh no console do firebase, como você vê na imagem


resposta boa e direta, acabei de configurar minha conta do gmail e bam, ele faz o resto
Ajeett

43

O e-mail de suporte e também todos os links de projetos e privacidade são necessários para que o Google SignIn funcione, caso contrário, ele gera 12500.

Configure-o em https://console.developers.google.com/apis/credentials na parte inferior da segunda guia chamada "tela de consentimento OAuth" - lá você encontrará três links que precisam ser configurados.

Isso não é mencionado EM QUALQUER LUGAR nos guias do Firebase.


3
Obrigado, está funcionando para mim.
Perdi

2
Obrigado, acabei de adicionar um dos 'domínios autorizados' aos links de privacidade e tudo funcionou. Você me poupou algumas horas de tentativa e erro 💌
Coco

Esta deve ser a resposta aceita. Tenho lutado com esses 2 dias, sem sucesso. O Google deve atualizar os guias, pois agora a documentação deles é enganosa, o guia nunca funcionará e o código de erro não diz nada
user1209216

1
onde adicionar links de privacidade?
Shihab Uddin

4
Na segunda guia chamada "tela de consentimento do OAuth" - na parte inferior do formulário você tem três links
zub0r


18

Eu estava preso nisso por um tempo.

Certifique-se de que essas etapas sejam realizadas

  • A chave SHA correta é salva no Firebase console.
  • Baixe o google-service.json mais recente
  • E por último e mais importante, Salve o consentimento do OAuth sob as credenciais no google api, tela do OAuth. Isso demorou muito para descobrir. E funcionou bem depois disso.

6
bem. esta deve ser a resposta aceita para 2019 aqui. o Google estranhamente "deve" atualizar o conteúdo dentro do OAuth Consent
mochadwi

1
Ugh, outro voto para isso. Totalmente era meu obscuro problema.
easycheese

12

Parece que seu SHA1 foi substituído pela Google Play Store. Verifique em sua loja Google Play, painel de lançamento, em assinatura de aplicativo, se o Google Play tem um SHA1 adicional adicionado.

E copiar aquele SHA1, adicionar ao seu lugar relevante, faria o trabalho.


1
Oh meu Deus! Obrigado por esta dica! Os App Bundles criaram seu próprio SHA1, de modo que as chaves de lançamento que são usadas localmente (ao gerar APKs) não são mais as corretas.
Jia Tse

Este é o fluxo de trabalho mais confuso de todos os tempos. Mas obrigado pela dica
DarkNeuron

5

Se ainda houver alguém com um problema semelhante, se você estiver adicionando escopos personalizados, certifique-se de que seja um escopo válido. No meu caso, misturei escopos do Facebook com escopos do Google e demorei um pouco para descobrir!


5

Estou usando o Firebase Authentication. Meu SHA-1 foi indicado corretamente, a id do cliente também estava correta, mas eu ainda estava recebendo 12.500.

Descobri que meu problema era não indicar o e-mail de suporte nas configurações do projeto. (Configurações -> guia Geral -> seção Seu projeto (Configurações públicas)).


3
A mesma coisa aconteceu comigo também. Existem sérios problemas de documentação com os serviços do Google. Eu gostaria que eles documentassem esses problemas ou, pelo menos, mostrassem um erro amigável.
ashish-goel

4

Acesse seu projeto no Firebase console, abra as Configurações do projeto e adicione suas impressões digitais do certificado SHA. Baixe o arquivo google-services.json atualizado e adicione-o à pasta do aplicativo Projetos.

Isso funcionou para mim.

Captura de tela do console do Firebase


3

Acho que o erro veio do SHA1 errado. Não se esqueça de que o SHA1 é diferente entre os modos de liberação e depuração no Android Studio. Em vez de usar o keytool para obter o SHA1, você pode usar o projeto Gradle -> Tarefa -> android -> SignReport no Android Studio (pode abri-lo pelo menu Exibir -> Toolwindow -> gradle) para obter a liberação e depuração do SHA1. Depois disso, para facilitar o trabalho, você precisa criar 2 credenciais separadas com dois SHA1 no Google Cloud Console (google apenas instrua para criar 1 usando a versão SHA1, quando o desenvolvermos não funcionará, pois usa o SHA1 de depuração).


3

Primeiro, certifique-se de registrar seu aplicativo no console de desenvolvedores do Google

Certifique-se de ter as chaves debuge releaseem seu aplicativo Firebase. Se esse erro aparecer na produção, adicione seu SHA-1 release keypara acionar o aplicativo base. Se estiver em desenvolvimento, adicione o seu SHA-1 debug key.

Onde adicionar a impressão digital SHA-1

Obtendo a chave de depuração / liberação:

keytool -exportcert -list -v -alias [your alias] -keystore [path/to/debug or release.keystore]

Certifique-se de baixar o atualizado google-services.jsonpara o seu aplicativo.


Eu estava falhando com GoogleSignInResult.getSuccess () retornando falso e um código de 12500. No final das contas, outra pessoa configurou meu OAuth com seu SHA1 em vez de minha chave de depuração. Isso consertou.
Reckless

@Reckless Fico feliz que isso tenha ajudado!
Denn

2

Para mim, o problema era usar um ClientID de 'liberação' com meu aplicativo configurado para depuração. Certifique-se de ter um release e um debug keys, usando cada SHA-1 respectivamente.


2

Se você está vindo aqui do flutter : Este é um dos casos extremos que temos que consertar conforme a documentação aqui: https://pub.dev/packages/google_sign_in insira a descrição da imagem aqui

  • Vá para APIs e serviços do Google
  • Selecione o aplicativo no qual deseja implementar o login do Google.
  • Em seguida, clique em Habilitar APIS e Serviços

insira a descrição da imagem aqui

  • Em seguida, pesquise a API Google Peoples

insira a descrição da imagem aqui

  • Abra o cartão da API do Google People e clique em ativar, seu aplicativo pode se livrar do problema.

2

Quando seu aplicativo se autentica com um servidor de back-end ou acessa APIs do Google de seu servidor de back-end, você deve passar o ID do cliente OAuth 2.0 que foi criado para seu servidor para o método requestIdToken ao construir o objeto GoogleSignInOptions, para acessar as informações básicas de perfil do usuário . Além disso, não se esqueça de enviar o e-mail de suporte na tela de consentimento do OAuth encontrada na página Credenciais no Console de API.


1

Também pode acontecer que o compilador cordova não consiga encontrar o arquivo keystore adequado.



Solução: Antes de executar, ionic cordova build androidespecifique as propriedades de assinatura

Etapa 1 : gerar um arquivo de armazenamento de chaves de depuração

Execute o comando

keytool -exportcert -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore

Use a senha: android

Passo-2: Copie o arquivo de armazenamento de chaves ( debug.keystore) a partir ~/.androidde platform/androiddiretório do seu projeto atual

Etapa 3: crie um arquivo chamado release-signing.properties no platform/androiddiretório

Etapa 4: adicione o conteúdo ao arquivo

storeFile=debug.keystore
keyAlias=androiddebugkey
storePassword=android
keyPassword=android

Observação: esses são os valores padrão. Se você forneceu alias e senha personalizados, use-os de acordo.

Etapa 5: agora construirionic cordova build android


1

Eu tive o mesmo problema depois de abrir meu projeto em outro computador (diferente Android Studio). No meu caso, resolvi isso usando o Firebase Assistant, que usei para configurar o Firebase inicialmente. Abra o Firebase Assistant (Tools> Firebase) e selecione Authentication> Connect. Isso reconectou o projeto ao Firebase e atualizou as configurações


1

Eu estava preso no problema de login do Google há 2 semanas, finalmente resolvi bem. Deixe-me explicar o motivo. O problema estava relacionado com o firebase. No firebase, eles mencionaram um campo "email de suporte" como opcional. Mas depois que eu adicionei (qualquer um de seu e-mail pessoal), o problema foi resolvido e recebi a resposta. Se você receber um erro como 12501, isso está relacionado às configurações da sua conta do Google.


1

Eu estava preso nisso por um tempo.

Certifique-se de que essas etapas sejam realizadas

Correct SHA key is saved on Firebase Console.
Valid reversed client id.
from fcm console=>select app=>from authentication=>enable google sign-in method

0

No meu caso, é por causa do ID de cliente do Google errado. Eu mudo minha chave para a chave listada em google-services.json(sob oauth_clientobjeto)


0

Certifique-se de ter os seguintes itens configurados corretamente:

  1. Gere o ID do cliente em seu projeto do Google.
  2. Forneça a chave SHA-1 adequada para esse ID de cliente. (depurar / liberar)
  3. Forneça o nome de pacote adequado para esse ID de cliente.
  4. Certifique-se de ter gerado o ID do cliente em strings.xml, google-services.jsonou credentials.jsonarquivo.

0

https://developers.google.com/identity/sign-in/android/sign-in siga esta documentação da API, mas tenha em mente que dentro de WEB_CLIENT_ID use o valor do id do cliente que é gerado dentro do arquivo google-services.json.

class MainActivity : AppCompatActivity(), GoogleApiClient.OnConnectionFailedListener {
private val TAG = "JSAGoogleSignIn"
private val REQUEST_CODE_SIGN_IN = 1234
private val WEB_CLIENT_ID = "354298333018-XXXXXXXXXXXXXXXXXXXXXXX.apps.googleusercontent.com"
private var mAuth: FirebaseAuth? = null

private var mGoogleApiClient: GoogleApiClient? = null
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    var txt_register = findViewById<TextView>(R.id.txt_register)
    txt_register.setOnClickListener {
        var intent = Intent(this@MainActivity, RegisterActivity::class.java)
        finish()
        startActivity(intent)
    }
    val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestIdToken(WEB_CLIENT_ID)
            .requestEmail()
            .build()
    mGoogleApiClient = GoogleApiClient.Builder(this)
            .enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
            .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
            .build()

    mAuth = FirebaseAuth.getInstance()
    sign_in_button.setOnClickListener {
        val intent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient)
        startActivityForResult(intent, REQUEST_CODE_SIGN_IN)
    }

}


override fun onConnectionFailed(p0: ConnectionResult) {
    TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}


private fun updateUI(user: FirebaseUser?) {
    if (user != null) {
        Log.e("Email", "Value" + user.email)
    }

}

fun signIn() {

}

override fun onStart() {
    super.onStart()
    val currentUser = mAuth!!.currentUser
    updateUI(currentUser)
}

public override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)

    // Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
    if (requestCode == REQUEST_CODE_SIGN_IN) {
        val result = Auth.GoogleSignInApi.getSignInResultFromIntent(data)
        if (result.isSuccess) {
            // successful -> authenticate with Firebase
            val account = result.signInAccount
            firebaseAuthWithGoogle(account!!)
        } else {
            // failed -> update UI
            updateUI(null)
            Toast.makeText(applicationContext, "SignIn: failed!" + result.status,
                    Toast.LENGTH_SHORT).show()
        }
    }
}

private fun firebaseAuthWithGoogle(acct: GoogleSignInAccount) {
    Log.e(TAG, "firebaseAuthWithGoogle():" + acct.id!!)

    val credential = GoogleAuthProvider.getCredential(acct.idToken, null)
    mAuth!!.signInWithCredential(credential)
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    // Sign in success
                    Log.e(TAG, "signInWithCredential: Success!")
                    val user = mAuth!!.currentUser
                    updateUI(user)
                } else {
                    // Sign in fails
                    Log.w(TAG, "signInWithCredential: Failed!", task.exception)
                    Toast.makeText(applicationContext, "Authentication failed!",
                            Toast.LENGTH_SHORT).show()
                    updateUI(null)
                }
            }
}

0

No meu caso, depois de adicionar a impressão digital no console do Firebase, ela foi automaticamente selecionada pelo console do desenvolvedor do Google e mostrada nas impressões digitais. Mas o login não funcionou. Depois de examinar cada etapa, descobri que o Google reverteu meu pacote de arquivo de manifesto assim com.xxxxxxxx.app. Mas é app.xxxxxxxx.com, na verdade , no console do desenvolvedor do Google. Portanto, apaguei automaticamente, criei uma impressão digital e adicionei a impressão digital com o nome do pacote correto. ESTRONDO!!. Funcionou.


0

O erro apareceu para mim quando a opção Google não estava habilitada, conforme mostrado na imagem .

Aconteceu quando mudei de conta do Google e esqueci de ativar a opção de conexão com o Google.


0

Certifique-se de que seu projeto não contenha nenhum caractere especial, incluindo numérico ou qualquer tipo de símbolo (o nome do projeto deve ser simples como com.google.testproject)


Isso é chamado Nome do pacote do projeto, não nome do projeto
b devloper

0

No meu caso, eu estava trabalhando em um aplicativo de não produção, o problema era que, ao criar um projeto no console do firebase, havia problemas ao sincronizar as chaves SHA-1 para frente e para trás nos consoles de desenvolvedores do Firebase e do Google. Portanto, decidi criar o projeto primeiro no console do Google Developer e, em seguida, selecioná-lo ao criar um novo projeto no console do Firebase.

Também fiz um tutorial para isso, que pode te ajudar.


0

No meu caso, o problema era que meu emulador não tinha Play Store. Eu fiz o emulador (chamado API 23) através do Visual Studio, porque eu desenvolvo usando Xamarin.Forms também, e no Gerenciador de dispositivos Android do Visual Studio você pode selecionar se seu emulador deve ter Google Play Store.

Tive que criar um emulador por meio do AVD do Android Studio e garantir que tivesse Play Store:

insira a descrição da imagem aqui


0

No meu caso, esse erro ocorreu porque a autenticação do Android foi removida pela equipe sênior, pois parece que não há necessidade de chave do Android na autenticação de backend. Portanto, as chaves de cliente Android e Web são necessárias no login do Google.


-1

Experimente estas opções:

keytool -list -v -keystore C:\Users\MG\Desktop\test.jks -alias test

Ele solicita a senha e apenas digite a senha. Você pode ver as impressões digitais SHA1, MD5.

insira a descrição da imagem aqui

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.