web-dev-qa-db-fra.com

Firebase Android: Une erreur interne s'est produite. [OPERATION_NOT_ALLOWED]

La connexion via Google dans mon application génère 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 cela n'a rien à voir avec mon code, mais s'il me le dit bien.

SignInactivité:

@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();
           }
       }
    );
}
16
Ab_

J'ai eu le même problème. J'ai trouvé la solution dans l'article de forum [Google Auth] com.google.firebase.FirebaseException: une erreur interne s'est produite.

Cela m’est arrivé lorsque la méthode d’authentification n’était pas activée dans la console Firebase. Lorsque j'ai activé l'authentification Google, j'ai eu la même exception, mais sans [OPERATION_NOT_ALLOWED].

33
Ismael Junior
  1. Accédez à https://console.firebase.google.com/
  2. Sélectionnez votre projet.
  3. Cliquez sur l'option de menu Authentification
  4. Cliquez sur SIGN-IN-METHOD 
  5. Cliquez sur Google et activez-le.

Alors ça marche bien :) 

11
Dev

Si vous vous inscrivez avec un email 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.
1
ViramP

Allez sur Google " https://console.developers.google.com/apis/library/ " pour votre projet et activez l'API Identity Toolkit. 

0
Amit Walke

Activez la méthode SIGN-IN-METHOD sur firebase console que vous allez utiliser ou que vous utilisez dans votre APP.

0
M. Ashish

enfin j'ai trouvé la solution qui a fonctionné pour moi. Le fait est que même lorsque vous avez configuré avec succès la méthode d’authentification email + mot de passe vous devez créer une application mobile (dans mon cas) et l’associer à votre projet. Après cela, FireBase fonctionnera comme prévu.

0
pinkfloyd