【问题标题】:Multiple Application in same Firebase Project同一个 Firebase 项目中的多个应用程序
【发布时间】:2020-08-08 15:02:22
【问题描述】:
我有一个有两个应用程序的项目。一个用户应用程序和一个管理员应用程序。两个应用程序都应该使用相同的数据库,这可以在 firebase 中轻松完成。现在我想为这两个应用程序构建一个身份验证。但是,如果您在一个应用程序(例如用户应用程序)中注册,您不应该在管理应用程序中拥有帐户。所以我不知道如何在 Firebase 中处理这个问题,因为一个项目中的所有应用程序都构建在同一个身份验证系统上。
处理这个问题的最佳方法是什么?
【问题讨论】:
标签:
firebase
firebase-authentication
【解决方案1】:
由于“两个应用都应该使用同一个数据库”,所以需要使用同一个项目进行身份验证。
这种情况下的经典方法之一是使用基于角色的访问控制策略。管理员用户将具有特定的“管理员”角色,并且只有具有此角色的用户才能读取/写入管理员数据。
自定义声明是在 Firebase 中实现这种基于角色的访问控制的方式。 documentation 很好地解释了它(包括如何使用 Firebase 安全规则中的自定义声明 - 根据这些声明限制对数据的访问 - 以及如何使用它们来隐藏/显示应用程序用户界面的元素,具体取决于角色)。
您可能也对此article 感兴趣,它展示了如何创建管理模块来管理用户访问权限和角色。
这个SO answer 您可能也会感兴趣,尤其是最后两个 OP 问题的答案(“我可以在客户端应用程序中构建一个管理面板吗?”和“我应该在另一个应用程序中构建一个管理面板并使用 Cloud函数?”)