代码上的Firebase用户ID和当前用户ID不匹配

时间:2017-07-13 07:45:28

标签: android firebase firebase-realtime-database

我是Firebase的新用户,我认为Firebase数据库生成的用户ID与使用currentUser.getUid()获得的用户ID相同。但正如您所看到的,这两个值并不适合我当前的用户。

我无法弄清楚原因。请帮忙。怎么解决这个? enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

正如我在屏幕截图中看到的那样,您使用两种不同的方式来获取该唯一键,uid对象提供firebaseUser以及push()方法生成的唯一键。很明显不一样,因为有不同的原则。

第一个是Firebase身份验证提供的uid,第二个是push()方法提供的,根据生成时间生成唯一ID。

用作用户标识符的最佳方式不是uidpushed id也不是电子邮件地址,因为如果用户删除了自己的帐户并再次登录,我会得到一个新的uid

如果您想使用uid,这是您可以检索它的方式:

FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
    String uid = firebaseUser.getUid();
}

希望它有所帮助。

答案 1 :(得分:1)

这些是完全不同的东西。
您使用getUid()获得的ID是用户注册Firebase身份验证时创建的ID。当您调用push()方法时,其他一个是根据Firebase数据库中的当前时间戳创建的密钥。
您可以做的是使用push方法而不是使用push方法在数据库中创建新人,使用您的id来自getUid()