我正在使用firebase创建一个具有登录和注册功能的网站。我使用过firebase"身份验证"用于存储注册用户的数据库。但是,"身份验证"数据库不存储除emailid,密码和自动生成的UUID之外的任何内容。
我需要为用户存储更多数据,如用户名,个人资料照片等。我会使用firebase""实时"同样的数据库。
我的问题是做同样的事情的最佳做法是什么。我应该使用UID作为"身份验证"的主键。数据库并将其作为外键保存在我的实时数据库中,如下所示:
身份验证db:
Record 1 - Email:abc@test.com; password:somepassword; UID:UID1
Record 2 - Email:abcd@test.com; password:somepassword; UID:UID2
RealTime数据库结构:
users
|
|--UID1
|
|---Name:Amanda
|---Surname:Waller
|---age:30
|--UID2
|
|---Name:MyName
|---Surname:Mysurname
|---age:39
或者最好将电子邮件ID用作主键,而不是使用firebase自动生成的UID。因为在sql中我们通常不使用自动生成的id作为主键。
答案 0 :(得分:1)
最好使用UID。首先,您不能在密钥中使用句点,因此如果您使用电子邮件作为密钥,则必须通过将其替换为其他字符来处理它。此外,某些形式的身份验证不需要电子邮件,如Twitter。由于您可以在用户通过身份验证后轻松获取UID,这就是我的建议。