我正在为我的应用程序使用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

10-08 11:10