检查用户是否已使用Firebase中的密码身份验证登录

时间:2017-08-28 03:21:42

标签: android firebase firebase-authentication password-protection

我正在使用firebase的密码验证。我已经使用firebase注册了我的应用并启用了电子邮件/密码身份验证。在我的MainActivity中,我有注册和登录按钮,可以打开注册和登录活动。如果有成功的注册/登录,我我将用户重定向到ImageActivity。到目前为止,它工作正常。当用户在ImageActivity时,如果他/她按下后退按钮,应用程序应该关闭,但我将被带到登录/注册活动。我已经在登录/注册活动的onCreate中编写了以下代码。

auth = FirebaseAuth.getInstance();

        if (auth.getCurrentUser() != null) {
            startActivity(new Intent(LoginActivity.this, ImageActivity.class));
            finish();
        }

我已在MainActivity onCreate中编写了此代码。 请帮忙

2 个答案:

答案 0 :(得分:1)

要防止出现此问题,您可以执行以下操作

首先:当您启动ImageActivity时,清除后台堆栈,您应该将Image Activity声明为新任务。为此,您应该在LoginActivity或SignupActivity

中编写以下代码
auth = FirebaseAuth.getInstance();

    if (auth.getCurrentUser() != null) {
         Intent intent = new Intent(LoginActivity.this, ImageActivity.class); // Change LoginActivity to SignupActivity if you are calling ImageActivity from SignupActivity
         intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
         startActivity(intent);
         finish();
    }
  

如果从MainActivity启动Signup / LoginActivity,请确保   从启动LoginActivity和SignupActivity时也是如此   MainActivity。

在ImageActivity类上执行onBackPressed之后。并在onBackPressed中调用finish()。代码在

之下
@Override
public void onBackPressed() {
    finish();
}

完成此操作后,我希望您的问题能够得到解决。

答案 1 :(得分:0)

检查

mAuth.signInWithEmailAndPassword(email, password)
    .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            if (task.isSuccessful()) {
                // Sign in success, update UI with the signed-in user's information
                Log.d(TAG, "signInWithEmail:success");
                FirebaseUser user = mAuth.getCurrentUser();
                updateUI(user);
            } else {
                // If sign in fails, display a message to the user.
                Log.w(TAG, "signInWithEmail:failure", task.getException());
                Toast.makeText(EmailPasswordActivity.this, "Authentication failed.",
                        Toast.LENGTH_SHORT).show();
                updateUI(null);
            }

            // ...
        }
    });
相关问题