firebase错误W / DynamiteModule:找不到com.google.firebase.auth的本地模块描述符类

时间:2017-01-10 23:38:28

标签: android firebase firebase-authentication

  • 我尝试根据登录/注册帐户构建应用程序。
  • 我创建了它的Firebase并通过电子邮件启用身份验证。
  • 我添加了google-play-services.json文件。
  • 我添加了

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

    在build.gridle(app)

    在我添加的模块中

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

    这是我的代码

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

我收到了这个错误:

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.

有什么不对?

6 个答案:

答案 0 :(得分:7)

尝试将您的客户端与Firebase应用重新同步,然后再次添加.json文件。 在android studio 2.3中,只需单击工具&gt; firebase,然后在助手中检查您的应用是否已连接。

答案 1 :(得分:2)

登录您的firebase控制台并启用电子邮件/密码登录_Method,它应该可以解决问题。

答案 2 :(得分:0)

在Firebase控制台中检查是否允许“匿名身份验证”。它应该可以解决你的问题。

还要检查清单中的INTERNET权限。这很明显,但是......

祝你好运。

答案 3 :(得分:0)

确保您的模拟器具有Play商店。

如果未在模拟器上安装Play Store,则会发生此错误。

enter image description here

答案 4 :(得分:0)

更改Firebase规则后,此问题发生在我身上。我的IOS Simulator运行正常,但Android Emu却无法运行。我通过在模拟器中擦除设备中的所有数据,然后重新启动EMU来解决此问题。也许您甚至不需要擦除来自仿真设备的数据。

答案 5 :(得分:-1)

确保必须照顾好

Internet权限 ,编译库并 不能仅启用来自Firebase身份验证列表的一个身份验证。

在我的情况下,我从Google和电子邮件/密码列表中启用了2身份验证,因此该功能不起作用,但是在禁用Google之后。然后它可以正常工作。

希望我的回答对您有所帮助。