我是Firebase的新手,我正在尝试创建用户身份验证。用户对象具有:用户名,电子邮件,全名,角色,密码。
现在我希望能够创建具有这些属性的用户,并使用用户名/电子邮件和密码进行身份验证。
身份验证后,我想检查用户的角色,以确定允许他们访问我应用的哪个部分。
我不知道如何去做,文档主要只涉及电子邮件和密码。
答案 0 :(得分:1)
Firebase目前仅支持电子邮件+密码验证,而不支持用户名+密码。 (当然,Facebook,Twitter,匿名等)你仍然可以自己进行自定义身份验证。
您仍然可以使用您提到的那些字段在数据库中创建自己的用户对象:(用户名,电子邮件,全名,角色,密码),但这些对象与firebase的身份验证部分是分开的。这个过程,我打电话给"注册,"这取决于你实施。
如果您想要控制不同用户可以访问的数据库的哪些部分,那么您就是在谈论database rules。
如果您想要控制对应用程序本身不同部分的访问权限,那么您只需按照这种方式进行编码即可。
答案 1 :(得分:1)
您可以像这样构建数据库,以使用$uid
存储每个用户的信息,并保留每个用户声明的用户名列表,这样您就可以拥有一个写入规则来防止覆盖{{1}中现有的用户名。 1}}。
因此,注册后,您需要使用usernames
注册电子邮件和密码,然后在完成后,您将获得FIRAuth
。然后,您可以使用FIRUser
将用户名,角色等写入用户在数据库uid
中的位置以及用户名位置"users/$uid": {"username": "callam", ...}
的用户名。
您需要为"usernames/$username": "$uid"
和"users/$uid"
实施写入/验证规则,以确保尚未使用用户名。
"usernames/$username"