Firebase signInWithEmailAndPassword 显示“未找到 com.google.firebase.auth" [英] Firebase signInWithEmailAndPassword gives "com.google.firebase.auth not found"

查看:27
本文介绍了Firebase signInWithEmailAndPassword 显示“未找到 com.google.firebase.auth"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用 firebase 作为我的 android 工作室的后端.并且还休耕了 eatch 和 firebase 控制台提供的每一步.我创建了 3 个活动

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. 主要活动
  2. 登录活动
  3. 注册活动

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

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 显示器出现以下错误

Android monitor is giving the following error

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

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

登录活动

  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() 方法以记录登录失败的原因:

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

失败的可能原因是:

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

关于

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

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"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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