我FirebaseSimpleLogin用来创建用户并处理身份验证.
当我尝试通过该$createUser()方法创建一个简单登录的新用户时,如果已经使用了电子邮件地址,firebase将不会创建用户.但是,$set()在创建它们之后,我还使用将创建的用户保存到我的firebase中,并将其user.uid用作密钥.当尝试写入数据库时,即使用户名不是唯一的,firebase也会保存记录,因为简单登录只需要电子邮件和密码.那么,当用户名不被用作用户对象的密钥时,如何验证用户名是否唯一?
我正在创建这样的新用户:
$scope.createUser = function() {
$scope.auth.$createUser('trinker@gmail.com', 'password').then(function(user, err) {
if (!err) {
ref.child('users/' + user.uid).set({
email: user.email,
username: user.username
});
console.log("success!");
}else{
console.log(err.message);
}
});
}
Run Code Online (Sandbox Code Playgroud)
我的用户对象如下所示:
{
"users" : {
"simplelogin:28" : {
"email" : "trinker@gmail.com",
"username" : "jtrinker"
},
"simplelogin:30" : {
"email" : "test@gmail.com",
"username" : "jtrinker"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我需要使用uid作为每个用户的密钥,但我仍然需要用户名是唯一的.
如果一个对象中的属性对于另一个对象内的属性不是唯一的,我怎么能阻止firebase保存记录?
angularjs firebase firebase-security angularfire firebase-realtime-database