oncompletelistener不起作用的firebase身份验证

0g0grzrc  于 2021-08-20  发布在  Java
关注(0)|答案(2)|浏览(382)

我正在尝试用firebase实现一个基本的android身份验证系统。以下是我的代码:

Toast.makeText(MainActivity.this, "BEFORE ON-COMPLETE", Toast.LENGTH_SHORT).show();  //this shows up
    mAuth.signInWithEmailAndPassword(emailInputted, passInputted).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            Toast.makeText(MainActivity.this, "in OnComplete", Toast.LENGTH_SHORT).show(); //this does not show up
            if(task.isSuccessful()){
                Intent i = new Intent(MainActivity.this, Dashboard.class);
                i.putExtra("EMAIL", emailInputted);
                Toast.makeText(MainActivity.this, "Login Successful", Toast.LENGTH_SHORT).show();
                startActivity(i);
            } else {
                Toast.makeText(MainActivity.this, "Please check email/password", Toast.LENGTH_SHORT).show();
            }
        }
    });
    Toast.makeText(MainActivity.this, "after OnComplete", Toast.LENGTH_SHORT).show(); //this shows up

我从官方firebase文档中获取了这段代码,但由于某些原因,它无法工作。这个 onComplete 方法由于某种原因未被调用。我可以看到“完成前”和“完成后”的祝酒词,但看不到“完成中”的祝酒词。我已经在firebase控制台的身份验证表中添加了用户,我确信我输入了正确的密码。
使用调试器后,我发现我的代码只是跳过了 onComplete() 方法,甚至无法访问 isSuccessful() 方法。我该如何解决这个问题?
提前谢谢!

0md85ypi

0md85ypi1#

按照这个,我希望你会得到你的答案。

lBut = findViewById(R.id.log_btn);
        lBut.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String a = usrn.getText().toString().trim();
                String b = pswd.getText().toString().trim();

                if (TextUtils.isEmpty(a) && TextUtils.isEmpty(b)) {
                    usrn.setError("Empty Email !!");
                    pswd.setError("Empty Password !!");

                    lBut.setClickable(false);
                } else {
                    lBut.setClickable(true);
                    mAuth.signInWithEmailAndPassword(a, b).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                        @SuppressLint("ShowToast")
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            if (task.isSuccessful()) {
                                Toast.makeText(getApplicationContext(), "Successfully Login!!", Toast.LENGTH_SHORT).show();
                                Intent i = new Intent(getApplicationContext(), HomeP.class);
                                ProgressBar prb = findViewById(R.id.progressBar);
                                prb.setVisibility(View.VISIBLE);
                                startActivity(i);
                                finish();
                            } else
                                Toast.makeText(getApplicationContext(), "Check Error And Try Again!!", Toast.LENGTH_SHORT).show();
                        }
                    });

                }
            }
        });

这是登录按钮上的事件,您有更多疑问,请回答我。

whitzsjs

whitzsjs2#

所以在我重新启动电脑后,它自行修复了。没有代码更改。也许安卓工作室有些古怪。

相关问题