Firebase signInWithEmailAndPassword会提供“com.google.firebase.auth not found” [英] Firebase signInWithEmailAndPassword gives "com.google.firebase.auth not found"

查看:2935
本文介绍了Firebase signInWithEmailAndPassword会提供“com.google.firebase.auth not found”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用firebase作为我的android studio的回报。而且还有休闲的eatch和Firebase控制台提供的每一个步骤。我创建了3个Activity


  1. MainActivity

  2. LoginActivity RigisterActivity

我能够成功注册用户,但是当我尝试使用电子邮件和密码登录用户时,任务没有成功。下面是我的代码



Android监视器给出以下错误:

lockquote

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



$ b 登录活动

  private EditText mLoginEmailField; 
private EditText mloginPassField;

私人按钮mLoginbtn;
私人按钮mNewAccountbtn;

private DatabaseReference mDatabaseRefrence;





private FirebaseAuth mAuth;
@Override
protected void onCreate(Bundled savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);



mAuth = FirebaseAuth.getInstance();
mLoginEmailField =(EditText)findViewById(R.id.loginEmailField);
mloginPassField =(EditText)findViewById(R.id.loginPasswordField);

mLoginbtn =(Button)findViewById(R.id.loginBtn);
mNewAccountbtn =(Button)findViewById(R.id.newAccountbtn);
mDatabaseRefrence = FirebaseDatabase.getInstance()。getReference()。child(Users);


mNewAccountbtn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Intent rigisterIntent = new Intent (LoginActivity.this,RegisterActivity.class);
rigisterIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(rigisterIntent);
}
});


mLoginbtn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){

CheckLogin ();
}
});


private void CheckLogin(){

String email = mloginPassField.getText()。toString()。trim();
String pass = mloginPassField.getText()。toString()。trim(); $!

$ b if(!TextUtils.isEmpty(email)&!TextUtils.isEmpty(pass)){


mAuth.signInWithEmailAndPassword email,pass).addOnCompleteListener(this,new OnCompleteListener< AuthResult>(){
@Override $ b $ public void onComplete(@NonNull Task< AuthResult> task){


if(task.isSuccessful()){

CheackUserExsists();

} else {

Toast.makeText(LoginActivity.this, Erorr Login,Toast.LENGTH_LONG).show();

}
}
});



$ b $ private void CheackUserExsists(){

final String user_id = mAuth.getCurrentUser()。的getuid();
mDatabaseRefrence.addValueEventListener(new ValueEventListener(){
@Override $ b $ public void onDataChange(DataSnapshot dataSnapshot){$ b $ if(dataSnapshot.hasChild(user_id)){

Intent MainIntent = new Intent(LoginActivity.this,MainActivity.class);
MainIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(MainIntent);
} else
{

Toast.makeText(LoginActivity.this,您需要设置您的账户..,Toast.LENGTH_LONG).show();
}
}

@Override
public void onCancelled(DatabaseError databaseError){

$ b});





解决方案修改您的 onComplete()方法来记录登录失败的原因:



<$ (@NonNull Task< AuthResult>){
@Override
public void onComplete(@NonNull Task< AuthResult> ;任务){
if(task.isSuccessful()){
CheackUserExsists();
} else {
Log.e(TAG,Sign-in Failed:+ ().getMessage());
//或者如果你不使用Log:
// System.out.println(Sign-in Failed:+ task.getException ).getMessage());
Toast.makeText(LoginActivity.this,Erorr Login,Toast.LENGTH_LONG).show();
}
}
});

失败的可能原因是:


  • 电子邮件地址格式不正确

  • 通过电子邮件/密码登录被禁用

  • 电子邮件不存在或已被删除

  • 与电子邮件对应的用户帐户已被禁用

  • 密码错误


  • $ b

    有关

    的警告讯息


    未找到com.google.firebase.auth的本地模块描述符类。

    不是重要的,不是登录失败的原因。


    I am using firebase as baackend for my android studio. And also fallowed eatch and every step provided by firebase console. I created 3 Activity's

    1. MainActivity
    2. LoginActivity
    3. RigisterActivity

    I am able to register the user successfully but when i try to login user with email and password task is not getting successful. below is my code

    Android monitor is giving the following error

    W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.

    Login Activity

      private EditText mLoginEmailField;
        private EditText mloginPassField;
    
        private Button mLoginbtn;
        private Button mNewAccountbtn;
    
        private DatabaseReference mDatabaseRefrence;
    
    
    
    
    
        private FirebaseAuth mAuth;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_login);
    
    
    
            mAuth = FirebaseAuth.getInstance();
            mLoginEmailField = (EditText) findViewById(R.id.loginEmailField);
            mloginPassField = (EditText) findViewById(R.id.loginPasswordField);
    
            mLoginbtn = (Button) findViewById(R.id.loginBtn);
            mNewAccountbtn = (Button) findViewById(R.id.newAccountbtn);
            mDatabaseRefrence = FirebaseDatabase.getInstance().getReference().child("Users");
    
    
            mNewAccountbtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent rigisterIntent = new Intent(LoginActivity.this,RegisterActivity.class);
                    rigisterIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    startActivity(rigisterIntent);
                }
            });
    
    
            mLoginbtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
    
                    CheckLogin();
                }
            });
        }
    
        private void CheckLogin() {
    
            String email = mloginPassField.getText().toString().trim();
            String pass = mloginPassField.getText().toString().trim();
    
    
            if(!TextUtils.isEmpty(email) && !TextUtils.isEmpty(pass)){
    
    
                mAuth.signInWithEmailAndPassword(email,pass).addOnCompleteListener(this,new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
    
    
                        if(task.isSuccessful()){
    
                            CheackUserExsists();
    
                        }else{
    
                            Toast.makeText(LoginActivity.this,"Erorr Login",Toast.LENGTH_LONG).show();
    
                        }
                    }
                });
    
            }
    
        }
    
        private void CheackUserExsists() {
    
            final String user_id = mAuth.getCurrentUser().getUid();
            mDatabaseRefrence.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    if(dataSnapshot.hasChild(user_id)){
    
                        Intent MainIntent = new Intent(LoginActivity.this,MainActivity.class);
                        MainIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                        startActivity(MainIntent);
                    }else
                    {
    
                        Toast.makeText(LoginActivity.this,"You need to setup your Account.. ",Toast.LENGTH_LONG).show();
                    }
                }
    
                @Override
                public void onCancelled(DatabaseError databaseError) {
    
                }
            });
        }
    
    
                    @
    

    解决方案

    Modify your onComplete() method to log the reason for sign-in failure:

        mAuth.signInWithEmailAndPassword(email,pass).addOnCompleteListener(this,new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if(task.isSuccessful()){
                    CheackUserExsists();
                }else{
                    Log.e(TAG, "Sign-in Failed: " + task.getException().getMessage());
                    // Or if you don't use Log:
                    // System.out.println("Sign-in Failed: " + task.getException().getMessage());
                    Toast.makeText(LoginActivity.this,"Erorr Login",Toast.LENGTH_LONG).show();
                }
            }
        });
    

    The possible reasons for failure are:

    • The email address is malformed
    • Sign-in by email/password is disabled
    • The user account corresponding to the email does not exist or has been deleted
    • The user account corresponding to the email has been disabled
    • The password is wrong
    • The user's token is not valid

    The warning message about

    Local module descriptor class for com.google.firebase.auth not found.

    is not significant and is not the reason for the sign-in failure.

    这篇关于Firebase signInWithEmailAndPassword会提供“com.google.firebase.auth not found”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆