FirebaseUser可以在不调用AuthStateListener的情况下变为null

时间:2017-11-03 12:58:33

标签: android firebase firebase-authentication

如果没有已登录的用户,则

FirebaseAuth.getInstance().getCurrentUsernull,如果用户已从该应用实例登录到Firebase,则为非空。如果正确注册,当身份验证状态发生变化时,即用户登录或注销时,将调用AuthStateListener

我想知道FirebaseAuth.getInstance().getCurrentUser是否有可能突然开始返回null(假设它已经返回非null FirbaseUser直到该点)调用前面提到的听众。

如果无法实现,那么我可以安全地使用FirebaseAuth.getInstance().getCurrentUser而无需担心NPE

Firebase文档中没有任何地方可以保证当且仅当AuthStateListener返回的值发生更改时才会调用FirebaseAuth.getInstance().getCurrentUser

1 个答案:

答案 0 :(得分:1)

来自Firebase Auth团队的Malcolm。作为the documentation states,将触发AuthStateListener:

  • 听众注册后
  • 用户登录后
  • 当前用户退出时
  • 当前用户更改时

这是一个隐含的承诺,如果用户状态发生更改(并且注销是用户状态更改),将触发AuthStateListener。

希望有所帮助!