[英]How to remain signed in even when the user closes the app in android studio
一开始我在注销时遇到了问题(链接: 如何在用户想在 android studio 中注销时)。 我删除了即使在应用程序关闭后也有助于保持用户登录的部分,现在注销工作正常。但现在我的问题是我应该如何保持用户登录? 这是我的登录页面
public class Login_Page extends AppCompatActivity {
ActivityLoginPageBinding binding;
ProgressDialog progressdialog;
FirebaseAuth auth;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityLoginPageBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
button = findViewById(R.id.Googlelogin);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Login_Page.this, SignUp.class);
startActivity(intent);
} //taking the user to signup page
});
auth = FirebaseAuth.getInstance();
progressdialog = new ProgressDialog(Login_Page.this);
progressdialog.setTitle("Logging in");
progressdialog.setMessage("Please wait");
binding.Login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
progressdialog.show();
auth.signInWithEmailAndPassword(binding.Email.getText().toString(), binding.Password.getText().toString())
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
progressdialog.dismiss();
if (task.isSuccessful()) {
Toast.makeText(Login_Page.this, "Success", Toast.LENGTH_SHORT).show();
String uid = auth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = rootRef.child("Users").child("Driver").child(uid);
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if (snapshot.exists()) {
Toast.makeText(Login_Page.this, "LoginDriver", Toast.LENGTH_SHORT);
Intent intent = new Intent(Login_Page.this, HomePage.class);
startActivity(intent);
} else {
startActivity(new Intent(Login_Page.this, Custhomepage.class));
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
};
uidRef.addListenerForSingleValueEvent(valueEventListener);
} else {
Toast.makeText(Login_Page.this, task.getException().getMessage(), Toast.LENGTH_SHORT);
}
}
});
}
});
}
}
我猜你不是在检查用户是否登录。 在活动的 onCreate 中,调用以下方法checkFirebaseUser()
private void checkFirebaseUser () {
FirebaseUser firebaseUser = mAuth.getCurrentUser ();
if (firebaseUser != null) {
//User is logged in already. You can proceed with your next screen
} else {
//User not logged in. So show email and password edit text for user to enter credentials
}
}
希望以上代码片段对您有所帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.