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

Rya*_*yan 5 authentication firebase firebase-authentication firebase-realtime-database

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

就像是:

[
  {
    "emp_id": 123, //Login username
    "passwordHash": "LKWrHLwsFlbY4AylsPQ", //Password
    "name": "John Doe"
  },
  {
    "emp_id": 456,
    "passwordHash": "ZQXyTXf8EXlAWX1f",
    "name": "Jane Doe"
  }
]
Run Code Online (Sandbox Code Playgroud)

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

如何在 firebase 中设置这种类型的身份验证方法?他们似乎在强迫自己的身份验证系统(这些系统很整洁,但不是我需要的)

Fra*_*len 5

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

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

有关在 Cloud Functions 上实现用户名+密码身份验证的自定义提供程序的示例,请查看存储库中的此页面function-samples