web-dev-qa-db-fra.com

erreur firebase W/DynamiteModule: classe de descripteur de module local pour com.google.firebase.auth introuvable

  • J'ai essayé de créer une application basée sur les comptes de connexion/inscription.
  • J'ai créé son Firebase et active l'authentification par courrier électronique.
  • J'ai ajouté le fichier google-play-services.json.
  • J'ai ajouté 

    apply plugin: 'com.google.gms.google-services'
    compile 'com.google.firebase:firebase-auth:10.0.1'
    

    dans build.gridle (app)

    Et dans le module j'ai ajouté 

    classpath 'com.google.gms:google-services:3.0.0'
    

    Et c'est mon code 

    public class splashscr extends Activity implements View.OnClickListener{
    
    TabHost tab ;
    Button logbtn,signup;
    EditText email,password,signupemail,signuppassword;
    private FirebaseAuth firebaseAuth;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tab =(TabHost) findViewById(R.id.tabhost);
        logbtn = (Button) findViewById(R.id.btn_login);
        signup = (Button) findViewById(R.id.btn_signup);
        password = (EditText)findViewById(R.id.input_password);
        email = (EditText)findViewById(R.id.input_email);
        signupemail =(EditText)findViewById(R.id.signupinput_email);
        signuppassword = (EditText) findViewById(R.id.signupinput_password);
        firebaseAuth = FirebaseAuth.getInstance();
        logbtn.setOnClickListener(this);
        signup.setOnClickListener(this);
        tab.setup();
    
        TabHost.TabSpec spec = tab.newTabSpec("tag1");
        spec.setIndicator("",getResources().getDrawable(R.drawable.loginpic));
        spec.setContent(R.id.tab1);
        tab.addTab(spec);
    
        spec = tab.newTabSpec("tag2");
        spec.setIndicator("",getResources().getDrawable(R.drawable.signupp));
        spec.setContent(R.id.tab2);
        tab.addTab(spec);
    }
    @Override
    public void onClick(View view) {
       final Intent I = new Intent(this,HomeActivity.class);
        final String emailout = signupemail.getText().toString();
        final String passwordout = signuppassword.getText().toString();
        if (view == signup){
            (firebaseAuth.createUserWithEmailAndPassword(emailout,passwordout)).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()){
                        Toast.makeText(splashscr.this, "تم تسجيلك بنجاح ", Toast.LENGTH_SHORT).show();
                        startActivity(I);
                        finish();
                    }
                    else
                    {
                        Log.e("ERROR", task.getException().toString());
                        Toast.makeText(splashscr.this, "فشل التسجيل", Toast.LENGTH_SHORT).show();
                    }
                    Toast.makeText(splashscr.this,emailout+passwordout, Toast.LENGTH_SHORT).show();
                }
            });
        }
    }
    }
    

Et je reçois cette erreur:

E/ERROR: com.google.firebase.FirebaseException: An internal error has occurred. [ OPERATION_NOT_ALLOWED ]
W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.

quel est le problème?

8
Amr Kamal

Essayez de synchroniser de nouveau votre client avec votre application Firebase et rajoutez le fichier .json . Dans Android studio 2.3, cliquez sur Outils> Firebase et dans l’assistant, vérifiez si votre application est connectée.

7
Angel Black

Connectez-vous à votre console Firebase et activez la méthode de connexion à la messagerie et au mot de passe pour résoudre le problème.

1
Peter

Assurez-vous que votre émulateur dispose du Play Store.

Lorsque Play Store n'est pas installé sur l'émulateur, cette erreur se produit.

 enter image description here

0
CristianCotrena

Vérifiez dans votre console Firebase que "l'authentification anonyme" est autorisée. Cela devrait résoudre votre problème.

Vérifiez également l'autorisation INTERNET dans votre manifeste. C'est tellement évident, mais ...

Bonne chance.

0
Tekhita Fanta