Firebase 登录使用电子邮件和密码提供"com.google.firebase.auth not found"



我使用firebase作为我的android工作室的后端。并且还遵循了firebase控制台提供的每个步骤。我创建了3个Activity

  1. MainActivity
  2. LoginActivity
  3. RigisterActivity

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

Android监视器给出以下错误

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

<

登录活动/strong>

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

                @

修改您的onComplete()方法以记录登录失败的原因:

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

失败的可能原因有:

  • 邮件地址格式错误
  • 禁用电子邮件/密码登录
  • 邮件对应的用户账号不存在或已被删除
  • 邮件对应的用户账号已被禁用
  • 密码错误
  • 用户的令牌无效

关于

的警告信息

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

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

android没有找到firebase认证的依赖项。去烤锅那儿。构建应用的文件并插入依赖项。如

dependencies {
...
         implementation 'com.google.firebase:firebase-auth:x.x.x' 
}

代替x.x.x添加您需要的版本。

有关更多信息,请访问此资源:https://firebase.google.com/docs/auth/android/password-auth.

相关内容

最新更新