Firebase Android: une erreur interne s'est produite. [OPÉRATION NON AUTORISÉE]
la connexion via Google dans mon application donne cette erreur:
Une erreur interne s'est produite. [OPERATION_NOT_ALLOWED ]
J'ai activé Google dans la console Firebase. Les autorisations sont correctes, et je n'arrive pas à trouver le problème. Je suis sûr que ça n'a rien à voir avec mon code, mais s'il me le dit.
SignInactivity:
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.sign_in_button:
signIn();
break;
}
}
private void signIn() {
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
// An unresolvable error has occurred and Google APIs (including Sign-In) will not
// be available.
Log.d(TAG, "onConnectionFailed:" + connectionResult);
Toast.makeText(this, "Google Play Services error.", Toast.LENGTH_SHORT).show();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
if (requestCode == RC_SIGN_IN) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (result.isSuccess()) {
// Google Sign In was successful, authenticate with Firebase
GoogleSignInAccount account = result.getSignInAccount();
firebaseAuthWithGoogle(account);
} else {
// Google Sign In failed
Log.e(TAG, "Google Sign In failed.");
}
}
}
private void firebaseAuthWithGoogle(GoogleSignInAccount acct) {
Log.d(TAG, "firebaseAuthWithGooogle:" + acct.getId());
AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
mFirebaseAuth.signInWithCredential(credential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Log.d(TAG, "signInWithCredential:onComplete:" + task.isSuccessful());
// If sign in fails, display a message to the user. If sign in succeeds
// the auth state listener will be notified and logic to handle the
// signed in user can be handled in the listener.
if (!task.isSuccessful()) {
Log.w(TAG, "signInWithCredential", task.getException());
Toast.makeText(SignInActivity.this, "Authentication failed: " + task.getException(),
Toast.LENGTH_SHORT).show();
} else {
startActivity(new Intent(SignInActivity.this, MainActivity.class));
finish();
}
}
);
}
6 réponses
j'ai eu le même problème. J'ai eu la solution dans le post sur le forum [Google Auth] com.Google.firebase.FirebaseException: une erreur interne est survenue.
cela m'est arrivé quand je n'avais pas la méthode d'authentification activée dans la base de données Firebase de la console. Lorsque J'ai activé l'authentification Google, j'ai eu la même exception, juste sans [OPERATION_NOT_ALLOWED].
- https://console.firebase.google.com/
- Sélectionnez votre projet.
- cliquez sur Authentification à partir de l'option menu
- Cliquez sur le SIGNE-DANS-la MÉTHODE
- cliquez sur Google et activez-le.
Que cela fonctionne très bien :)
activez la méthode SIGN-in-METHOD sur console firebase lequel vous allez l'utiliser ou que vous utilisez dans votre APPLICATION.
si vous vous inscrivez avec un courriel et un mot de passe, suivez les étapes ci-dessous.
Go to https://console.firebase.google.com/
Select your project.
Click on Authentication from menu option(Right-side menu)
Click on SIGN-IN-METHOD
Click on Email/Password and enable it.
Click on SAVE.
finalement j'ai trouvé la solution qui a fonctionné pour moi. Le fait est que même lorsque vous avez mis en place avec succès la méthode email+password auth vous devez créer une application mobile(dans mon cas) et l'associer à votre projet. Après cela FireBase fonctionnera comme prévu.
Aller sur Google "https://console.developers.google.com/apis/library/" de votre projet et de permettre l'Identité Trousse à outils API