Firebase和Firestore-将多个应用程序分组到一个项目中-身份验证将如何工作?

时间:2018-08-04 22:32:31

标签: firebase firebase-authentication

我希望拥有一个包含多个独特应用程序的Firebase项目。用户在每个应用程序中可以具有不同的帐户和身份。我正在使用Firestore来保存基本身份信息,即首选名称等。

我的问题与每个应用程序中用户的身份验证有关。有没有一种方法可以使用户在不同的应用程序中拥有不同的身份验证帐户?

即在app1中,用户将使用user@abc.com的电子邮件/密码,密码为123,而在app2中,同一用户将在用户@ user.abc.com的电子邮件地址/密码,密码为456?

2 个答案:

答案 0 :(得分:0)

Control Access with Custom Claims and Security Rules介绍了如何执行此操作。

  

Firebase Admin SDK支持在用户上定义自定义属性   帐户。这提供了实现各种访问的能力   Firebase中的控制策略,包括基于角色的访问控制   应用。这些自定义属性可以为用户提供不同级别的   访问(角色),这是应用程序的安全规则中强制执行的。

     

可以为以下常见情况定义用户角色:

     
      
  • 授予用户访问数据和资源的管理权限。
  •   
  • 定义用户所属的不同组。
  •   
  • 提供多级访问:
  •   
  • 区分付费/未付费订户。
  •   
  • 区别主持人与普通用户。
  •   
  • 老师/学生申请表等
  •   
  • 在用户上添加其他标识符。例如,Firebase用户可以映射到另一个系统中的其他UID。
  •   

答案 1 :(得分:0)

Firebase项目背后的逻辑是,项目中的所有应用对于用户而言基本上是相同的。因此,在一个项目中同时包含iOS和Android和网络应用程序是很正常的。对于项目的不同方面或应用程序的精简版和专业版,甚至拥有不同的应用程序甚至很常见。

所有这些方案的共同点是,项目的资源(包括用户列表)在所有应用程序之间共享。您要提供的是针对不同应用程序的单独用户列表。那不是Firebase项目的目的,所以它不是内置的。

您可能可以通过为Firebase身份验证构建自己的自定义身份提供程序来使其工作。但我还是建议不要这样做,因为将来随着项目的扩展或Firebase强制每个项目使用“一个逻辑应用程序”的逻辑,您可能会遇到其他限制。