对于以下情况,我有哪些选择:
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
- > user-gmail-com
),然后将其用作关键。
答案 0 :(得分:3)
每{{}}},身份验证后的auth
令牌有效负载包含唯一的数字ID(id
)和包含该数字ID的ID,但保证在Firebase简单登录中是唯一的提供者(uid
)。使用这两个ID中的一个来存储用户数据将使您能够处理用户电子邮件的更改(即将进入简单登录)或手动链接多个帐户凭据,而无需任何粗略的电子邮件地址转发。