Donc, je suis coincé sur ce problème frustrant . Je suis assez nouveau pour Google Auth sur Firebase, mais j’ai fait tout ce que la documentation Firebase avait expliqué pour intégrer l’authentification Google SignIn, mais je reçois toujours cette erreur 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 Tout le monde essaie de signaler des questions similaires qui ont déjà été posées sur le dépassement de capacité de la pile. Voici ce que j'ai fait jusqu'à présent après avoir vu toutes les solutions disponibles et pourtant résolu non l'erreur
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]
}
});
}
Le problème réside essentiellement dans la clé SHA1
placée sur la console, veuillez la régénérer et reprendre le même projet.
1) En guise de réponse, assurez-vous que votre apk
Android signée réelle a la même empreinte digitale SHA1
que celle spécifiée dans la console de la section d'intégration Android de votre projet Firebase (la page où vous pouvez télécharger le google-services.json
).
2) En plus de cela, allez dans les paramètres de votre projet firebase (icône d'engrenage à droite dans la vue d'ensemble en haut à gauche. Ensuite, passez à l'onglet Lien au compte. Sur cet onglet, liez Google Play à votre projet.
Si vous avez toute la configuration valide dans Firebase comme SHA-1 et que vous avez importé le bon fichier google-services.json, vous obtenez toujours une erreur alors ajoutez l'email de support dans la console Firebase
Vous devez ajouter un courrier électronique d'assistance dans la console de base Fire. Sélectionnez Projet-> Paramètres -> Général -> Paramètre public.
J'étais confronté au même problème. Après avoir recherché une solution, de la régénération de l'empreinte digitale à la liaison de l'application sur Firebase à la console de jeu de Google et à la publication de l'apk signé, le problème était en réalité dû au fait que j'utilisais la version SHA-1 sur la console de base de feu.
https://developer.Android.com/studio/publish/app-signing.html
Dans mon cas, il n'y a pas de problème avec SHA-1
J'ai fait GoogleAuth
en utilisant Firebase
.
J'ai oublié d'ajouter implementation 'com.firebaseui:firebase-ui-auth:4.3.1'
Et j'ai mis ma propre clé à la place de R.string.default_web_client_id
. C'était donc le problème. J'ai ajouté la dépendance ci-dessus et remplacer R.string.default_web_client_id
par ma propre clé.
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build();
Lorsque vous utilisez Signature d'application par Google Play et Firebase , vous devez ajouter l'empreinte SHA-1 du certificat de signature App (disponible sur la console Google Play/Certificat de signature d'application/Gestion) dans la console Firebase/Paramètres/Empreintes digitales du certificat SHA
Je ne suis pas sûr que ce soit la cause, mais nous devrons peut-être utiliser l'ID de client Web dans l'application Android avant de la publier, lisez l'article suivant,
https://Android-developers.googleblog.com/2016/03/registering-oauth-clients-for-google.html