这个Question in mined这是一个后续问题。
根据我的假设纠正我,请我的学习曲线是积极的:)。
如果让我们说一个具有Firebase作为后端存储的聊天应用,那么使用聊天系统中的FirebaseAuth.getInstance().getCurrentUser().getUid()
uid作为聊天成员标识符,如果您允许用户删除该帐户,并允许帐户关联。 uid会改变,这会破坏数据库吗?
我现在的下一个假设是,要在聊天应用程序中拥有安全的用户ID,可以使用已登录的电子邮件地址,因为它是trusted provider !?
我的结论是永远不要将getCurrentUser().getUid()
uid用作用户的识别符或?
答案 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(",", ".");
}
希望它有所帮助。