Error de inicio de sesión de Google 12500

106

Estoy intentando integrar Google Sign In en mi aplicación. No tengo un servidor back-end, solo obtengo los detalles de la cuenta de Google registrada en mi aplicación.

Primero lo probé usando el ejemplo de inicio de sesión de Google, pero obtuve un error (no se realizaron cambios en el código excepto para imprimir el seguimiento de la pila a continuación). Acabo de usar el ejemplo SignInActivity ya que no tengo un 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;
         }
     }
  }

Por lo que leí, el problema podría ser causado por SHA1 Generation .

Seguí la guía completa pero aparentemente no está funcionando.

Copié el SHA1 de 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

¿Cuál podría ser la posible causa de esto?

Gracias

PD ¿Podría ser esta una posible causa?

Google Play services out of date.  Requires 11720000 but found 10932470
Aaron
fuente
Oye, ¿puedes publicar tu código
Dilip
Hola @Dilip, literalmente usé esto :) github.com/googlesamples/google-services/tree/master/android/… . Actualicé de todos modos
Aaron
1
Entonces, ¿qué sucede si obtiene el mismo error o sucede cualquier otra cosa? Una cosa, haga una vez más SHA1 manualmente y colóquelo en la consola de desarrollador con su APLICACIÓN, verifique el nombre del paquete y descargue el archivo google-services.json y colóquelo en el nivel de la aplicación.
Dilip
Sí @Dilip obtengo el mismo error. Crucé el nombre del paquete verificado. Incluso intenté usar otro almacén de claves, pero el resultado es el mismo.
Aaron
Debe realizar cambios en el código para obtener su clave API. Y sí, deberías actualizar los servicios de juego
OneCricketeer

Respuestas:

37

Simplemente actualice sus servicios de Google Play a la última versión (o 11720000 en este caso). Si usa AVD, las imágenes de Nexus 5 y 5X son compatibles con Google Play. Una vez que el emulador esté en funcionamiento, vaya al Menú de controles extendidos> Google Play y luego actualice.

Strauss
fuente
¿Cómo hacerlo en dispositivos Samsung?
Pinkesh Darji
7
Este no es el problema en mi caso. Los servicios de Google Play ya están actualizados.
Adam Hurwitz
La solución de @ zub0r con respecto a los enlaces de proyectos y privacidad debe aceptarse como la respuesta correcta.
Adam Hurwitz
¿Dónde está el menú de controles extendidos, en el emulador o en Visual Studio?
George Udosen
121

Error PlatformException (sign_in_failed, com.google.android.gms.common.api.ApiException: 12500:, nulo)

Este error 12500 se puede resolver agregando una dirección de correo electrónico de soporte a su proyecto en la configuración del proyecto. Abrir enlace https://console.firebase.google.com/

Seleccione su proyecto y abra la pestaña de configuración.

Proporcione un correo electrónico de soporte válido y reinicie su aplicación ahora.

ingrese la descripción de la imagen aquí

Maddu Swaroop
fuente
9
¡Gracias hombre! Este error es bastante críptico, puede significar cualquiera de las cosas que se mencionan en las respuestas aquí. Mi problema fue este :(
Billda
3
Hice todo lo mencionado en la consola de desarrolladores developers.google.com/identity/sign-in/android/sign-in y después de pasar un día intentando poner la huella digital SHA-1 y todo esto fue el problema. Tu ayudaste. ¡Muchas gracias!
clase Android
Intente agregar la clave SHA1 para su proyecto @RohitSingh
Maddu Swaroop
1
@MadduSwaroop Si solo hubiera una manera de votar dos veces ... gracias señor
Lefty
1
Me salvaste el día
Houssem
46

Compruebe si las huellas digitales SHA-1 se agregan a la configuración del proyecto de base de fuego. Si no es así, busque la huella digital SHA-1 usando

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

Además, busque la huella digital SHA-1 de la clave de liberación usando

keytool -list -v -keystore <keystore path>

Eliminar <keystore path>con la ruta del almacén de claves.

Luego agregue ambas huellas digitales SHA-1 a la configuración de proyectos de base de fuego.

NB: No olvide reemplazar google-services.json con google-services.json actualizado con nuevas huellas digitales. Perdí dos días en eso.

Mientras depura

Android Studio genera automáticamente ~/.android/debug.keystoreen la primera compilación de depuración y lo usa para firmar la aplicación.

Para ejecutar SHA-1 (contraseña android) ( doc ):

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

Esto SHA-1debe agregarse a la configuración de la aplicación en firebasepara permitir el uso de las capacidades de inicio de sesión de Google mientras se prueba la compilación de depuración.

Niyas Nazar
fuente
2
¿Cómo estás seguro de que está usando Firebase?
PaulG
Lo adiviné (similitud en código y sin servidor). El proyecto de Firebase también está conectado a la consola de GCP. También podemos cambiar las huellas digitales en las credenciales de GCP.
Niyas Nazar
mismo error con, pero en mi caso no estaba relacionado con firebase (no lo estoy usando).
Majed DH
Vaya a console.developers.google.com/apis/credentials. Agregue una nueva credencial (O Auth Client) con la clave SHA. (Firebase hace esto automáticamente para nuestros proyectos de firebase)
Niyas Nazar
El archivo google-services.json se puede encontrar en el directorio de la aplicación dentro de su proyecto. (Ir a Finder / File Explorer)
Mehul Tandale
43

 para el error 12500, debe agregar soporte de gmail en la configuración de firebase solamente y para el error 10, agregue la huella digital ssh en la consola de firebase como se ve en la imagen

Vijay
fuente
respuesta buena y directa, acabo de configurar mi cuenta de gmail y bam, hace el resto
Ajeett
43

El correo electrónico de soporte y también todos los enlaces de proyectos y privacidad son necesarios para que Google SignIn funcione, de lo contrario arroja 12500.

Configúrelo en https://console.developers.google.com/apis/credentials en la parte inferior de la segunda pestaña llamada "Pantalla de consentimiento de OAuth"; allí encontrará tres enlaces que deben configurarse.

Esto no se menciona en NINGÚN LUGAR en las guías de Firebase.

zub0r
fuente
3
Gracias, me está funcionando. He perdido casi días enteros para resolver el problema
krishan kumar Sharma
2
Gracias, acabo de agregar uno de los 'dominios autorizados' a los enlaces de privacidad y todo funcionó. Me ahorraste algunas horas de prueba y error 💌
Coco
Esta debe ser una respuesta aceptada. He estado luchando con esos 2 días, sin ningún éxito. Google debería actualizar las guías, por ahora su documentación es engañosa, su guía nunca funcionará y el código de error no dice nada
user1209216
1
¿Dónde agregar enlaces de privacidad?
Shihab Uddin
4
En la segunda pestaña llamada "Pantalla de consentimiento de OAuth" - en la parte inferior del formulario tiene tres enlaces
zub0r
21

Intente actualizar la pantalla de consentimiento de OAuth en https://console.developers.google.com/apis/credentials

Fauzi Danartha
fuente
3
Tuve que agregar un correo electrónico de soporte y luego comenzó a funcionar. Esto estaba en un aleteo.
adarsh
Además, todos los enlaces de proyectos y privacidad son necesarios, de lo contrario arroja 12500. Esto no se menciona en ninguna parte.
zub0r
Los enlaces @ zub0r no son necesarios. Fuente: Lo hice sin ellos.
easycheese
18

Estuve atrapado en esto por un tiempo.

Asegúrese de que se realicen estos pasos:

  • La clave SHA correcta se guarda en Firebase Console.
  • Descargue la última versión de google-service.json
  • Y el último y más importante consentimiento de Save OAuth con credenciales en la API de Google, OAuth Screen Esto tomó mucho tiempo para darse cuenta. Y funcionó bien después de esto.
Pranjal Gupta
fuente
6
bien. esta debería ser la respuesta aceptada para 2019 aquí. Google extrañamente "debe" actualizar el contenido dentro del consentimiento de OAuth
mochadwi
1
Uf, otro voto para esto. Totalmente era mi oscuro problema.
easycheese
12

Parece que Google Play Store sobrescribe tu SHA1. Verifique en su tienda de Google Play, panel de inicio, debajo de la firma de la aplicación, vea si Google Play tiene un SHA1 adicional agregado.

Y copie ese SHA1, agréguelo a su lugar relevante, haría el trabajo.

Paul Zhang Ising
fuente
1
¡Oh Dios mío! ¡Gracias por este consejo! Los paquetes de aplicaciones crearon su propio SHA1, por lo que las claves de lanzamiento que se usan localmente (al generar APK) ya no son las correctas.
Jia Tse
Este es el flujo de trabajo más confuso de todos los tiempos. Pero gracias por el consejo
DarkNeuron
5

Si todavía hay alguien con un problema similar, si está agregando ámbitos personalizados, asegúrese de que sea un ámbito válido. En mi caso, mezclé los ámbitos de Facebook con los de Google y me tomó un tiempo averiguarlo.

Paulo Taylor
fuente
5

Estoy usando Firebase Authentication. Mi SHA-1 se indicó correctamente, la identificación del cliente también era correcta, pero todavía recibía 12500.

Resultó que mi problema fue que no indiqué el correo electrónico de soporte en la configuración de mi proyecto. (Configuración -> pestaña General -> sección Tu proyecto (Configuración pública)).

algrid
fuente
3
Lo mismo me pasó a mí también. Hay serios problemas de documentación con los servicios de Google. Ojalá documentaran estos problemas o al menos muestren un error fácil de usar.
ashish-goel
4

Vaya a su proyecto en la consola de Firebase, abra Configuración del proyecto, agregue sus huellas digitales de certificado SHA allí. Descargue el archivo google-services.json actualizado y agréguelo a la carpeta de la aplicación Proyectos.

Esto funcionó para mí.

Captura de pantalla de la consola de Firebase

Nishant Rai
fuente
3

Creo que el error provino del SHA1 incorrecto. No olvide que el SHA1 es diferente entre el modo de liberación y el modo de depuración en el estudio de Android. En lugar de usar keytool para obtener el SHA1, puede usar el proyecto Gradle -> Tarea -> android -> signingReport en el estudio de Android (puede abrirlo en el menú Ver -> Ventana de herramientas -> gradle) para obtener el lanzamiento y depurar SHA1. Después de eso, para facilitar el trabajo, debe crear 2 credenciales separadas con dos SHA1 en la consola de la nube de Google (Google solo indica que cree 1 usando la versión SHA1, cuando lo desarrollemos no funcionará ya que usa la depuración SHA1).

Bioz Nguyen
fuente
3

Primero, asegúrese de haber registrado su aplicación en la consola de desarrolladores de Google.

Asegúrese de tener las claves debugy releaseen su aplicación de Firebase. Si este error aparece en producción, agregue su SHA-1 release keyaplicación a la base de fuego. Si aparece en desarrollo, agregue su SHA-1 debug key.

Dónde agregar la huella digital SHA-1

Obteniendo la clave de depuración / liberación:

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

Asegúrese de descargar la actualización google-services.jsona su aplicación.

Denn
fuente
Estaba fallando con GoogleSignInResult.getSuccess () devolviendo falso y un código de 12500. Al final, fue que alguien más había configurado mi OAuth con su SHA1 en lugar de mi clave de depuración. Esto lo arregló.
Reckless
@Reckless ¡Me alegro de que esto haya ayudado!
Denn
2

Para mí, el problema era usar un ClientID de 'versión' con mi aplicación configurada para depurar. Asegúrese de tener una versión y una clave de depuración, utilizando cada SHA-1 respectivamente.

peresisUser
fuente
2

Si vienes aquí desde flutter : este es uno de los casos de esquina que tenemos que arreglar según la documentación aquí: https://pub.dev/packages/google_sign_in ingrese la descripción de la imagen aquí

  • Ir a API y servicios de Google
  • Seleccione la aplicación en la que desea implementar el inicio de sesión de Google.
  • Luego haga clic en Habilitar APIS y servicios

ingrese la descripción de la imagen aquí

  • Luego, busque la API de Google Peoples

ingrese la descripción de la imagen aquí

  • Abra la tarjeta de la API de Google People y haga clic en habilitar, su aplicación podría solucionar el problema.
erluxman
fuente
2

Cuando su aplicación se autentica con un servidor backend o accede a las API de Google desde su servidor backend, debe pasar el ID de cliente OAuth 2.0 que se creó para su servidor al método requestIdToken cuando construye el objeto GoogleSignInOptions, para acceder a la información básica del perfil del usuario. . Además, no olvide enviar el correo electrónico de soporte en la pantalla de consentimiento de OAuth que se encuentra en la página Credenciales en la Consola API.

Sridhar Shanmugam
fuente
1

También puede suceder que el compilador de cordova no pueda encontrar el archivo de almacén de claves adecuado.



Solución: antes de ejecutar, ionic cordova build androidespecifique las propiedades de firma

Paso 1 : generar un archivo de almacén de claves de depuración

Ejecuta el comando

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

Usar contraseña: android

Paso-2: Copia el archivo de almacén de claves ( debug.keystore) a partir ~/.androidde platform/androiddirectorio de su proyecto actual

Paso 3: Cree un archivo llamado release-signing.properties en el platform/androiddirectorio

Paso 4: agregue el contenido en el archivo

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

Nota: Estos son los valores predeterminados. Si ha proporcionado un alias y una contraseña personalizados, utilícelos en consecuencia.

Paso 5: ahora construyeionic cordova build android

Debojyoti
fuente
1

Experimenté el mismo problema después de abrir mi proyecto en otra computadora (diferente Android Studio). En mi caso, lo resolví usando el Asistente de Firebase, que había usado para configurar Firebase inicialmente. Abrió el Asistente de Firebase (Herramientas> Firebase) y seleccionó Autenticación> Conectar. Esto volvió a conectar el proyecto a Firebase y actualizó las configuraciones

allo
fuente
1

Estuve atrapado en el problema de inicio de sesión de Google desde la semana 2, finalmente lo solucioné bien. Permítame explicar el motivo. El problema estaba relacionado con firebase. En firebase, mencionaron un campo "correo electrónico de soporte" como opcional. Pero una vez que lo agregué (cualquiera de sus correos electrónicos personales), el problema se solucionó y obtuve la respuesta. Si obtiene un error como 12501, entonces está relacionado con la configuración de su cuenta de Google.

Kevin
fuente
1

Estuve atrapado en esto por un tiempo.

Asegúrese de que se realicen estos pasos:

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

En mi caso, se debe a una identificación de cliente de Google incorrecta. Cambio mi llave a la llave listada en google-services.json(bajo oauth_clientobjeto)

Thuanle
fuente
0

Asegúrese de tener las siguientes cosas configuradas correctamente:

  1. Genere la identificación del cliente en su proyecto de Google.
  2. Proporcione la clave SHA-1 adecuada para ese ID de cliente. (depuración / liberación)
  3. Proporcione el nombre de paquete adecuado para ese ID de cliente.
  4. Asegúrese de que ha generado cliente Id en strings.xml, google-services.jsono credentials.jsonarchivo.
Chintan Shah
fuente
0

https://developers.google.com/identity/sign-in/android/sign-in siga esta documentación de la API, pero tenga en cuenta que dentro de WEB_CLIENT_ID use el valor de la identificación del cliente que se genera dentro del archivo 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)
                }
            }
}
Vajani Kishan
fuente
0

En mi caso, después de agregar la huella digital en la consola de Firebase, la consola de desarrolladores de Google la recogió automáticamente y mostró las huellas digitales. Pero el inicio de sesión no funcionó. Después de mirar cada paso, pensé que Google invirtió mi paquete de archivos de manifiesto de esta manera com.xxxxxxxx.app. Pero en realidad está app.xxxxxxxx.comen la consola de desarrollo de Google. Así que eliminé automáticamente la huella digital y agregué la huella digital con el nombre correcto del paquete. ¡¡AUGE!!. Funcionó.

Naroju
fuente
0

El error me apareció cuando la opción de Google no estaba habilitada, como se muestra en la imagen .

Sucedió cuando cambié la cuenta de Google y olvidé activar la opción de conectarme con Google.

Yonibagi
fuente
0

Asegúrese de que su proyecto no debe contener ningún carácter especial, incluidos números o cualquier tipo de símbolo (el nombre del proyecto debe ser simple como com.google.testproject)

Sekhon123
fuente
Eso es llamar el nombre del paquete del proyecto, no el nombre del proyecto
b devloper
0

En mi caso, estaba trabajando en una aplicación que no era de producción, el problema era que al crear un proyecto en firebase console, había problemas al sincronizar las claves SHA-1 desde las consolas de desarrollador de Firebase y Google. Entonces, decidí crear el proyecto primero en la consola de desarrollador de Google y luego seleccionarlo al crear un nuevo proyecto en la consola de Firebase.

También hice un tutorial para esto, que puede ayudarte.

Zain
fuente
0

En mi caso, el problema era que mi emulador no tenía Play Store. Hice el emulador (llamado API 23) a través de Visual Studio, porque también desarrollo usando Xamarin.Forms, y en el Administrador de dispositivos Android de Visual Studio puede seleccionar si su emulador debe tener Google Play Store.

Tuve que crear un emulador a través del AVD de Android Studio y asegurarme de que tuviera Play Store:

ingrese la descripción de la imagen aquí

Junco
fuente
0

En mi caso, este error estaba allí porque el equipo senior eliminó la autenticación de Android, ya que parece que no hay necesidad de una clave de Android en la autenticación de backend. Por lo tanto, se necesitan claves de cliente web y de Android para iniciar sesión en Google.

Tanque Himani
fuente
-1

Prueba estas opciones:

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

Solicita la contraseña y simplemente ingrese la contraseña. Puede ver las huellas digitales SHA1, MD5.

ingrese la descripción de la imagen aquí

Srini
fuente