我在我的项目中有登录但是当我关闭它之后打开我的应用程序时,必须再次登录。我使用Firebase进行身份验证,但我想要这样的内容:
check if user is logged ->
if not - open login,
else - open my main activity"
我不知道我是否必须使用SQLite或者某些内容,或者如果用户没有注销,即使您关闭应用程序,如何保持会话处于活动状态。
答案 0 :(得分:1)
由于您使用的是Firebase来进行身份验证,因此您可以轻松验证用户是否具有此类认证:
FirebaseAuth auth = FirebaseAuth.getInstance();
FirebaseAuth.AuthStateListener authListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
Toast.makeText(MainActivity.this, "You are signed in Firebase!", Toast.LENGTH_SHORT).show();
//Redirect to MainActivity
} else {
Toast.makeText(MainActivity.this, "You are signed out from Firebase!", Toast.LENGTH_SHORT).show();
//Redirect to LoginActivity
}
}
};
不需要SqLite。希望它有所帮助。
答案 1 :(得分:0)
如果当前用户不为null,则表示已登录,否则为null
boolean isUserLoggedIn = FirebaseAuth.getInstance().getCurrentUser() != null;
答案 2 :(得分:0)
解决了!发现这个并且100%工作
@Override
public void onStart() {
super.onStart();
// Check if user is signed in (non-null) and update UI accordingly.
FirebaseUser currentUser = fAuth.getCurrentUser();
updateUI(currentUser);
}
private void updateUI(FirebaseUser user) {
if (user != null) {
startActivity(new Intent(Login.this, MainActivity.class));
} else {
//returns to login
}
}
答案 3 :(得分:-1)
您可以在登录sharedpreferences时设置布尔标志,因此当您加载应用程序时,您需要验证该标志,如果它是真的,则调用某些活动,但如果是,则调用登录活动。 只需记住在用户注销时将flag设置为false。