我正在使用Google的Firebase来实现与Facebook的登录。
根据firebase auth文档,我注册了一个监听器。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
_fbCallbackManager = CallbackManager.Factory.create();
mAuth = FirebaseAuth.getInstance();
setContentView(R.layout.activity_login);
configureNoLoginButton();
configureFbLoginButton();
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
// User is signed in
startMainActivity(mAuth.getCurrentUser());
} else {
// User is signed out
Toast.makeText(LoginActivity.this, "User is signed out", Toast.LENGTH_SHORT).show();
}
// ...
}
};
}
我在监听器中设置了一个断点,并且它被称为3次与用户!= null。
根据文档,在这些情况下可能会调用侦听器:https://firebase.google.com/docs/auth/users#the_user_lifecycle
第一次调用监听器时启动主活动是个好主意吗? (即放一个柜台 - 如果是第一次,开始主要活动;否则,什么都不做)。