如何在Firebase中创建没有电子邮件的用户?

时间:2018-09-15 21:28:42

标签: firebase authentication firebase-realtime-database firebase-authentication

我正在为一家只有几名员工的公司构建一个移动应用程序。每个员工都有一个唯一的员工ID,可以用作其帐户标识符。我想知道如何在Firebase中使用他们的员工ID作为用户名/ ID作为预设密码来创建这些用户。

类似的东西:

[
  {
    "emp_id": 123, //Login username
    "passwordHash": "LKWrHLwsFlbY4AylsPQ", //Password
    "name": "John Doe"
  },
  {
    "emp_id": 456,
    "passwordHash": "ZQXyTXf8EXlAWX1f",
    "name": "Jane Doe"
  }
]

员工将拥有一个永不更改的登录ID和一个可以随意更改的密码。无法注册/注册。任何新员工将由管理员手动添加。

如何在Firebase中设置这种身份验证方法?他们似乎在强迫自己的身份验证系统(整洁而又全部,但不是我所需要的)

1 个答案:

答案 0 :(得分:2)

Firebase不支持仅使用用户名和密码登录的内置支持。内置提供商提供的最接近的服务是使用伪造的电子邮件地址(例如123@company.com)创建帐户。但这并不理想,因为在某种程度上假定您可以为电子邮件+密码帐户发送密码重置电子邮件。

由于没有内置的标识提供程序可以满足您的需要,因此您需要为此创建自定义身份验证提供程序。这就要求您可以在受信任的环境中运行代码以创建令牌,例如,您的开发计算机,您控制的服务器或Cloud Functions for Firebase。

有关在Cloud Functions上实现用户名和密码身份验证的自定义提供程序的示例,请查看this page in the function-samples repo