Java中的Firebase身份验证登录问题

时间:2019-07-22 21:35:46

标签: android firebase authentication firebase-realtime-database firebase-authentication

我使用Firebase编写了一个登录系统。我现在想做什么:

如果用户注册时遇到麻烦(例如,如果他尝试使用已注册的电子邮件登录),我想在警告消息中打印错误并将其重定向到注册页面。

为此,我在注册按钮中编写了如下代码。

   // Sign Up Method
    // Kullanıcı Kayıt etme metodu
   public void signUp(View view) {
        mAuth.createUserWithEmailAndPassword(emailText.getText().toString(),passwordText.getText().toString())
                .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        Toast.makeText(signupPage.this, "User Created", Toast.LENGTH_SHORT).show();
                        Intent homePage = new Intent(signupPage.this, ProfilePage.class);
                        startActivity(homePage);
                        finish();
                    }
                }).addOnFailureListener(this, new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                    }
                }).addOnFailureListener(this, new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                if (mAuth.getCurrentUser() != null) {
                    Intent signBack = new Intent(signupPage.this, signupPage.class);
                    startActivity(signBack);
                    finish();
                }
                Toast.makeText(signupPage.this, e.getLocalizedMessage(), Toast.LENGTH_SHORT).show();
            }
        });

如果用户登录时出现问题,请执行显示错误消息。但是它不会重定向到注册页面。尽管显示错误,但用户将其重定向到主页,就好像它已成功注册一样。

如果您能帮助我,我将不胜感激。

对不起,我的英语不好。

1 个答案:

答案 0 :(得分:1)

好吧,首先,您必须知道onComplete方法将始终被调用,因为onFailure仅在某些操作失败时才进行。因此,正如我在您的代码上看到的那样,该应用将始终在首页启动。

如何解决? 只需检查任务是否成功即可重定向到首页。

在onComplete方法中检查是否还可以,并使用以下命令执行代码:if(task.isSuccessful)...