【问题标题】:FirebaseAuth.getCurrentUser() is returning null valueFirebaseAuth.getCurrentUser() 返回空值
【发布时间】:2018-06-24 17:19:42
【问题描述】:

FirebaseAuth.getCurrentUser() 正在返回 null 值。以前我的代码运行良好,但几天后它返回 currentUsernull

我还在另一台设备上尝试了我的应用程序,并且在该设备上使用相同的代码一切正常。

mAuth=FirebaseAuth.getInstance();
mCurrentUser=mAuth.getCurrentUser()
mUserDatabase=FirebaseDatabase.getInstance().getReference().child("Users")
                              .child(mCurrentUser.getUid());

例外:

引起:java.lang.NullPointerException:尝试调用虚拟 方法'java.lang.String com.google.firebase.auth.FirebaseUser.getUid()' 在空对象上 参考

我已经尝试在我的设备上擦除应用数据并卸载并重新安装我的应用,但没有任何效果。

我的设备或Firebase有问题吗?

【问题讨论】:

  • 您能否转到您的 Firebase 用户表并确认您拥有该用户?另外,您是在登录后这样做的吗?
  • 是的,用户已经存在。我已经在那里检查过了,正如我所说的,在另一台设备上一切正常
  • 您必须先登录才能尝试获取用户!问题似乎是您的用户尚未登录!
  • 当我的应用程序崩溃时如何登录。
  • 您似乎对如何使用Firebase数据库的基本概念缺乏了解。你应该阅读更多关于docs

标签: android firebase firebase-realtime-database firebase-authentication


【解决方案1】:

用户似乎没有登录您的应用,这会导致mCurrentUser.getUid() 引发异常。

解决方法是只调用getUid() 是否有登录的yser:

mCurrentUser=mAuth.getCurrentUser();
if (mCurrentUser != null) {
    mUserDatabase=FirebaseDatabase.getInstance().getReference().child("Users")
                          .child(mCurrentUser.getUid());
}

【讨论】:

  • 谢谢,解决了我的问题。但我仍然不明白为什么我以前的代码在我的另一台设备上运行良好。
  • 我的猜测是用户在那里登录,而这里你没有登录用户。
猜你喜欢
  • 2016-10-06
  • 1970-01-01
  • 1970-01-01
  • 2021-07-07
  • 1970-01-01
  • 2021-12-21
  • 2015-11-07
  • 2020-05-20
  • 2020-11-08
相关资源
最近更新 更多