Je suis donc bloqué sur ce problème frustrant. Je suis assez novice en matière de Google Auth sur Firebase, mais j'ai fait tout ce que la documentation de Firebase m'a indiqué pour intégrer Google SignIn Auth, mais je reçois toujours cette erreur bizarre dans la console, composée de deux parties :
12-03 11:07:40.090 2574-3478/com.google.android.gms E/TokenRequestor: You have wrong OAuth2 related configurations, please check. Detailed error: UNREGISTERED_ON_API_CONSOLE
et aussi
Google sign in failed com.google.android.gms.common.api.ApiException: 10:
Avant que quelqu'un ne tente d'indiquer des questions similaires qui ont déjà été posées sur stack overflow, voici ce que j'ai fait jusqu'à présent après avoir vu toutes les solutions disponibles et pourtant aucune n'a résolu l'erreur.
- J'ai mon empreinte SHA1 pour mon projet.
- J'ai l'identifiant de mon client OAuth 2.0, à la fois l'identifiant du client Android et celui du client Web, et dans la requestIdToken(), j'ai mis l'identifiant suivant identifiant du client web .
- Je l'ai fait. pas publier l'APK de mon projet sur google play store. ce qui signifie que je n'ai pas accidentellement généré une autre empreinte SHA1.
- J'ai suivi pas à pas la documentation de Google Sign in Auth firebase.
Voici mon extrait de code :
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signup);
ButterKnife.bind(this);
String webClientId = getString(R.string.web_client_id);
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestIdToken(webClientId)
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);
googleLoginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent signInIntent = mGoogleSignInClient.getSignInIntent();
startActivityForResult(signInIntent, RC_SIGN_IN);
}
});
}
@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);
try{
GoogleSignInAccount account = task.getResult(ApiException.class);
firebaseAuthWithGoogle(account);
} catch (ApiException e) {
// Google Sign In failed, update UI appropriately
Log.w(TAG, "Google sign in failed", e);
// [START_EXCLUDE]
Toast.makeText(this, "Gooogle Auth failed", Toast.LENGTH_LONG);
// [END_EXCLUDE]
}
}
}
private void firebaseAuthWithGoogle(GoogleSignInAccount acct) {
Log.d(TAG, "firebaseAuthWithGoogle:" + acct.getId());
// [START_EXCLUDE silent]
//showProgressDialog();
// [END_EXCLUDE]
AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
Log.d(TAG, "signInWithCredential:success");
FirebaseUser user = mAuth.getCurrentUser();
Toast.makeText(LoginActivity.this, "Successful Auth", Toast.LENGTH_LONG).show();
} else {
// If sign in fails, display a message to the user.
Log.w(TAG, "signInWithCredential:failure", task.getException());
Toast.makeText(LoginActivity.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
//updateUI(null);
}
// [START_EXCLUDE]
//hideProgressDialog();
// [END_EXCLUDE]
}
});
}
2 votes
En fait, le problème se situe au niveau de la clé SHA1 placée sur la console. Veuillez la régénérer et la replacer correctement dans le même projet.
3 votes
Oui, apparemment, vous avez été d'une grande aide !!! régénérer mon empreinte SHA1 a résolu le problème. merci. mais quand même, je suis curieux de savoir comment il y a eu un problème avec l'empreinte si firebase l'a généré en premier lieu. et je n'ai pas modifié depuis ??
0 votes
Quelle solution avez-vous suivie pour résoudre le problème ?
0 votes
@hasan_shaikh le accepté
0 votes
C'est fou mais après avoir créé un nouvel Android OAuth dans la console du développeur de Google, l'application continue de renvoyer ApiException 10. La suppression de l'application et la création d'une nouvelle résout ce problème pour moi.