在您的代码中,检查auth.currentUser是否为null的第一个返回通常会返回false。这是因为Firebase身份验证需要一些时间来检索身份验证状态。为了解决此问题,您可以使用身份验证状态更改侦听器(AuthStateListener),它将在身份验证状态更改时被调用。
以下是一个示例:
FirebaseAuth.auth().addAuthStateListener(new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
// User is signed in
} else {
// User is signed out
}
}
});
在此示例中,我们将AuthStateListener添加到FirebaseAuth实例中,并覆盖onAuthStateChanged方法。该方法将在身份验证状态更改时调用。我们检查当前用户是否为null,并据此确定用户是否登录。
使用AuthStateListener,您可以在任何时候获取当前用户身份验证状态。