如何存储要使用Firebase简单登录电子邮件/密码进行身份验证的用户?



在以下方案时我有什么选择:

  1. (现有)管理用户通过我的Web应用程序创建 Newuser
  2. newuser 通过FirebasesImplelogin电子邮件/密码进行身份验证
  3. 如何将通过auth对象返回的用户数据与 newuser 存储在/users/{{newUserId}}的数据?

现在,我认为最简单的方法是将用户的电子邮件用作唯一键,例如:

function createUser(newUserInfo){
    firebaseRef.$child('users/' + customerUserInfo.email).$set(newUserInfo);
}
function firebaseSimpleLoginSuccess(auth){
    var userInfo = firebaseRef.$child('users/' + auth.user.email);
}

,但这并不像我想要的那样可扩展,因为然后不允许用户更改电子邮件或将多个电子邮件与他们的帐户关联。

有其他方法吗?

编辑:在Firebase Array键不能包含特殊字符之后实现,但是该原理仍然适用:清洁电子邮件(例如user@gmail.com-> user-gmail-com),然后将其用作键。

每https://www.firebase.com/docs/security/simple-login-email-email-password.html,认证后的auth令牌有效载荷包括一个唯一的数字ID(id)以及包含该数字ID但保证在firebase简单登录提供商(uid)的ID。使用这两个ID存储用户数据将允许您能够处理对用户电子邮件的更改(即将登录简单)或手动链接多个帐户凭据,而无需任何电子邮件地址。

最新更新