何时使用FirebaseAuth用户uid以及何时使用电子邮件作为标识符

时间:2017-05-21 17:49:13

标签: android firebase firebase-authentication

这个Question in mined这是一个后续问题。

根据我的假设纠正我,请我的学习曲线是积极的:)。

如果让我们说一个具有Firebase作为后端存储的聊天应用,那么使用聊天系统中的FirebaseAuth.getInstance().getCurrentUser().getUid() uid作为聊天成员标识符,如果您允许用户删除该帐户,并允许帐户关联。 uid会改变,这会破坏数据库吗?

我现在的下一个假设是,要在聊天应用程序中拥有安全的用户ID,可以使用已登录的电子邮件地址,因为它是trusted provider !? 我的结论是永远不要将getCurrentUser().getUid() uid用作用户的识别符或?

1 个答案:

答案 0 :(得分:2)

使用getCurrentUser().getUid()并不是一个坏主意,但更好的想法是将email address用作标识符。我这样说是因为在用户正在删除帐户而不是返回的情况下,uid肯定会有所不同。由于Firebase不允许密钥中的点符号.,因此电子邮件地址必须按如下方式编码:

  

name@email.com - >名@电子邮件,玉米

正如您可能看到的那样,我已使用.更改了,。为此,我使用这种方法重新命令你:

static String encodeUserEmail(String userEmail) {
    return userEmail.replace(".", ",");
}

static String decodeUserEmail(String userEmail) {
    return userEmail.replace(",", ".");
}

希望它有所帮助。