使用Firebase进行基于角色的身份验证

时间:2016-09-19 10:25:40

标签: android firebase firebase-authentication firebase-security

我是Firebase的新手,我正在尝试创建用户身份验证。用户对象具有:用户名,电子邮件,全名,角色,密码。

现在我希望能够创建具有这些属性的用户,并使用用户名/电子邮件和密码进行身份验证。

身份验证后,我想检查用户的角色,以确定允许他们访问我应用的哪个部分。

我不知道如何去做,文档主要只涉及电子邮件和密码。

2 个答案:

答案 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"