我正在开发一个Android APP,并希望将其与Firebase及其实时数据库集成。我有1000个用户(Excel)的列表,其中包含EmpId,EmpName,团队,手机号码等详细信息。
我想仅将我的APP限制为该列表中的用户,并且还希望使用列表中存在的手机号码对该用户进行身份验证。
我可以使用Firebase Auth来满足上述要求吗?如果可以,该怎么做?
如果使用FireBase Auth,这是不可能的替代解决方案?
请帮助。
答案 0 :(得分:1)
Firebase身份验证仅允许用户标识自己。您所描述的是限制允许哪些用户使用您的应用程序,这就是所谓的授权,而Firebase身份验证则无法处理。
幸运的是,您也用firebase-realtime-database
进行了标记,并且权限肯定内置在其中。我通常要做的是在数据库中创建一个顶级节点,其中包含允许使用该应用程序的用户的UID:
"allowedUsers": {
"uidOfUser1": true,
"uidOfUser2": true
...
}
然后在其他安全规则中,您将在允许用户访问数据之前,检查用户的UID是否在此列表中,例如:
{
"rules": {
"employees": {
".read": "root.child('allowedUsers').child(auth.uid).exists()",
"$uid": {
".read": "auth.uid === $uid && root.child('allowedUsers').child(auth.uid).exists()"
}
}
}
}
具有以下规则:
当然,您需要修改这些规则以适合您自己的要求,但是希望这可以使您入门。
请记住以下几点:
allowedUsers
列表中。.
个字符,因此您必须对此进行某种形式的编码。另请参阅: