Angularjs 如何存储要验证的用户';是否使用Firebase简单登录电子邮件/密码?

Angularjs 如何存储要验证的用户';是否使用Firebase简单登录电子邮件/密码?,angularjs,firebase,angularfire,Angularjs,Firebase,Angularfire,在以下情况下,我有哪些选择: (现有)管理员用户通过我的web应用创建新用户 新用户通过FirebaseSimpleLogin电子邮件/密码进行身份验证 如何将通过auth对象返回的用户数据与存储在/users/{{newUserId}的newUser数据相关联 现在我认为最简单的方法是使用用户的电子邮件作为唯一密钥,如下所示: function createUser(newUserInfo){ firebaseRef.$child('users/' + customerUserInfo

在以下情况下,我有哪些选择:

  • (现有)管理员用户通过我的web应用创建新用户
  • 新用户通过FirebaseSimpleLogin电子邮件/密码进行身份验证
  • 如何将通过
    auth
    对象返回的用户数据与存储在
    /users/{{newUserId}
    newUser数据相关联
  • 现在我认为最简单的方法是使用用户的电子邮件作为唯一密钥,如下所示:

    function createUser(newUserInfo){
        firebaseRef.$child('users/' + customerUserInfo.email).$set(newUserInfo);
    }
    function firebaseSimpleLoginSuccess(auth){
        var userInfo = firebaseRef.$child('users/' + auth.user.email);
    }
    
    但这并不像我希望的那样具有可伸缩性,因为这样就不允许用户更改他们的电子邮件,或将多封电子邮件与他们的帐户关联

    还有别的办法吗


    编辑:在firebase数组键不能包含特殊字符后实现,但原则仍然适用:清理电子邮件(例如
    user@gmail.com
    -->
    用户gmail com
    ),然后将其用作密钥。

    根据,身份验证后的
    身份验证
    令牌有效负载包括一个唯一的数字id(
    id
    )和一个包含该数字id但保证在Firebase简单登录提供程序中唯一的id(
    uid
    )。使用这两个id之一存储用户数据将允许您处理对用户电子邮件的更改(即将进行简单登录)或者手动链接多个帐户凭据,而不转义任何电子邮件地址。

    Ack,我完全没有看到
    $createUser()
    返回带有新用户的
    uid
    user
    对象