具有角色检查功能的Firebase身份验证

时间:2019-12-16 14:15:55

标签: firebase flutter firebase-authentication

所以我对firebase和整个noSql数据库领域非常陌生。我现在正在一个基于flutter的项目中工作,该项目使用Firebase作为后端和数据库。

所以我正在构建类似uber的东西,但是为了发送东西,我正在创建4个不同的用户角色

  1. 买方
  2. 卖方
  3. 驱动程序
  4. 接收者(买方也可以充当接收者,但是,我对于具有角色接收者的用户来说,他们只能接收未订购的东西)

在我的应用程序中,当用户要登录或注册时,他们将首先选择他们将登录或注册为哪个角色。现在,通常在laravel或php中,我可以轻松地在数据库中建立一个检查器或某些字段来指示用户角色,并且只要用户登录或注册,它不仅会检查电子邮件中的唯一字段,而且还会查找该角色。

所以我可以分别以MyAwesomeEmail@email.com的身份充当卖方和买方。但是在firebase中,当我第一次注册为MyAwesomeEmail@email.com时,下次我再次注册时,它将说这封电子邮件已经被使用,这是正确的,因为我无法添加一些字段来指示此电子邮件已被卖方使用角色,但尚未用于买方角色。

那么如何解决呢?我用firebase做错了吗?或firebase,因为它的简单性使其无法像构建我们自己的后端那样提供灵活性?

1 个答案:

答案 0 :(得分:0)

Firebase身份验证仅处理用户的身份验证。使用电子邮件+密码身份验证时,这意味着用户键入电子邮件和密码的正确组合。

如果您的应用程序为每个用户分配了角色,则应以不需要其他凭据的方式进行分配。如果同一用户可以执行多个角色,则应构建UI,以允许他们输入与角色选择分开的凭据。

典型的流程可能是:

Select role -> Enter email -+-> Enter password
                            |
                            +-> Enter registration details

因此,在输入他们的电子邮件地址后,您将检查该电子邮件地址是否已经在该角色中注册。如果是这样,请询问他们的密码。如果不是,则要求他们输入该角色的注册详细信息。