当遇到以下情况时,我的选择是什么:
- (现有)管理员用户通过我的网络应用创建了一个newUser
- newUser 通过 FirebaseSimpleLogin 电子邮件/密码进行身份验证
- 如何关联通过
auth
返回的用户数据对象存储在/users/{{newUserId}}
的newUser数据?
现在我认为最简单的方法是使用用户的电子邮件作为唯一 key ,如下所示:
function createUser(newUserInfo){
firebaseRef.$child('users/' + customerUserInfo.email).$set(newUserInfo);
}
function firebaseSimpleLoginSuccess(auth){
var userInfo = firebaseRef.$child('users/' + auth.user.email);
}
但这并不像我希望的那样可扩展,因为用户随后将被禁止更改其电子邮件或将多个电子邮件与其帐户关联。
还有别的办法吗?
编辑:在 Firebase 数组键不能包含特殊字符之后意识到,但原则仍然适用:清理电子邮件(例如 <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4a3f392f380a2d272b232664292527" rel="noreferrer noopener nofollow">[email protected]</a>
--> user-gmail-com
),然后将其用作关键。
最佳答案
每https://www.firebase.com/docs/security/simple-login-email-password.html ,身份验证后的 auth
token 负载包括一个唯一的数字 ID (id
) 和一个包含该数字 ID 但保证在 Firebase 简单登录提供程序中唯一的 ID (uid
)。使用这两个 ID 之一存储用户数据将使您能够处理对用户电子邮件的更改(即将推出简单登录)或手动链接多个帐户凭据,而不会出现任何电子邮件地址的粗糙转义。
关于angularjs - 如何存储要使用 Firebase 简单登录电子邮件/密码进行身份验证的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22209158/