实现此目的的最简单方法是使用侦听器。假设您有两项活动,LoginActivity
和MainActivity
。可以在以下位置创建监听器LoginActivity
应该看起来像这样:
FirebaseAuth.AuthStateListener authStateListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
startActivity(intent);
finish();
}
}
};
这基本上意味着,如果用户已登录,则跳过LoginActivity
并前往MainActivity
.
实例化FirebaseAuth
object:
FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();
并开始倾听你的变化onStart()
像这样的方法:
@Override
protected void onStart() {
super.onStart();
firebaseAuth.addAuthStateListener(authStateListener);
}
In the MainActivity
,你应该做同样的事情:
FirebaseAuth.AuthStateListener authStateListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser == null) {
Intent intent = new Intent(MainActivity.this, LoginActivity.class);
startActivity(intent);
}
}
};
这基本上意味着如果用户未登录,则跳过MainActivity
并前往LoginActivity
。在此活动中,您应该执行与LoginActivity
,你应该开始监听变化onStart()
.
在这两项活动中,不要忘记在不再需要时删除侦听器。因此,将以下代码行添加到您的onStop()
method:
@Override
protected void onStop() {
super.onStop();
firebaseAuth.removeAuthStateListener(authStateListener);
}