我尝试了这两个代码段,但是似乎都不起作用
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
firebaseAuth = FirebaseAuth.getInstance();
mAuthListener = new FirebaseAuth.AuthStateListener(){
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth){
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if(user==null){
Intent intent = new Intent(MainActivity.this, login.class);
startActivity(intent);
finish();
}
}
};
}
和这个:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user == null) {
Intent intent = new Intent(MainActivity.this, login.class);
startActivity(intent);
finish();
}
}
在某些情况下,getCurrentUser将返回非null的FirebaseUser,但基础令牌无效。例如,如果在另一台设备上删除了用户并且本地令牌尚未刷新,则可能发生这种情况。在这种情况下,您可能会获得一个有效的用户getCurrentUser,但随后对经过身份验证的资源的调用将失败。
getCurrentUser也可能返回null,因为auth对象尚未完成初始化。
如果附加了AuthStateListener,则每次基础令牌状态更改时,都会获得回调。这对于应对上述极端情况很有用。
当我的应用启动时,主活动启动,它应该检查是否有登录用户,否则应重定向到登录活动
问题是当我从应用程序退出然后关闭应用程序并重新打开时,它是从主要活动开始的