.getCurrentUser()永远不会返回null-firebase

时间:2019-08-24 06:36:46

标签: java firebase firebase-authentication

我正在为我的应用程序使用facebook创建身份验证,并且一切正常,只是当我退出facebook时,它仍将我传递到应用程序的主菜单。我假设这意味着即使我注销了.getCurrentUser()也不返回null。

我尝试注释掉updateUI();在下面的代码中,这似乎可以解决问题,但是我希望此代码正常工作

    FirebaseUser currentUser = mAuth.getCurrentUser();

    if(currentUser != null) {
       updateUI();
    }

2 个答案:

答案 0 :(得分:1)

您需要附加一个身份验证侦听器。

“在某些情况下,getCurrentUser将返回非null的FirebaseUser,但基础令牌无效。例如,如果用户在另一台设备上被删除且本地令牌未刷新,则可能发生这种情况。在这种情况下,您可能会获得一个有效的用户getCurrentUser,但随后对经过身份验证的资源的调用将失败。

getCurrentUser也可能返回null,因为auth对象尚未完成初始化。

如果附加了AuthStateListener,则每次基础令牌状态更改时,都会获得回调。这对于应对像上面提到的那样的极端情况很有用。” https://firebase.google.com/docs/reference/android/com/google/firebase/auth/FirebaseAuth.AuthStateListener

https://firebase.google.com/docs/auth/android/manage-users

答案 1 :(得分:0)

尝试使用AuthStateListener,示例:

CustomList<string> customList = (CustomList<string>)_myList;