我正在为我的应用程序使用facebook创建身份验证,并且一切正常,只是当我从Facebook登出时,它仍然将我传递到应用程序的主菜单。我假设这意味着即使我注销了.getCurrentUser()也不返回null。
我试图注释掉updateUI();在下面的代码中,这似乎可以解决问题,但是我希望此代码正常运行
FirebaseUser currentUser = mAuth.getCurrentUser();
if(currentUser != null) {
updateUI();
}
最佳答案
您需要附加一个authstate侦听器。
“在某些情况下,getCurrentUser将返回非null的FirebaseUser,但基础令牌无效。例如,如果在另一台设备上删除了用户并且本地令牌未刷新,则可能会发生这种情况。可能会获得一个有效的用户getCurrentUser,但随后对经过身份验证的资源的调用将失败。
由于auth对象尚未完成初始化,因此getCurrentUser也可能返回null。
如果您附加了AuthStateListener,则每次基础令牌状态更改时,都会获得回调。这对于应对上述极端情况可能很有用。”
https://firebase.google.com/docs/reference/android/com/google/firebase/auth/FirebaseAuth.AuthStateListener
https://firebase.google.com/docs/auth/android/manage-users