我正在使用firebase
的密码验证。我已经使用firebase
注册了我的应用并启用了电子邮件/密码身份验证。在我的MainActivity
中,我有注册和登录按钮,可以打开注册和登录活动。如果有成功的注册/登录,我我将用户重定向到ImageActivity
。到目前为止,它工作正常。当用户在ImageActivity
时,如果他/她按下后退按钮,应用程序应该关闭,但我将被带到登录/注册活动。我已经在登录/注册活动的onCreate
中编写了以下代码。
auth = FirebaseAuth.getInstance();
if (auth.getCurrentUser() != null) {
startActivity(new Intent(LoginActivity.this, ImageActivity.class));
finish();
}
我已在MainActivity
onCreate
中编写了此代码。
请帮忙
答案 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);
}
// ...
}
});