我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
介绍
我正在构建一个 Firebase Web 客户端应用程序。我想设置 Firebase 数据库规则。
.
目标/意图
我想设置一个规则,当用户不存在或在管理控制台/(身份验证/用户)中禁用时,阻止访问(.read 或 .write)firebase 数据库。
像这样的事情:
"rules":{
"$uid":{
".write":"auth.isUserActive(auth.uid) == true"
}
}
Run Code Online (Sandbox Code Playgroud)
.
FIREBASE 参考文档: https ://firebase.google.com/docs/reference/security/database/#auth
题
我怎样才能实现上述意图?我应该为 firebase DB 设置什么规则?
firebase firebase-security firebase-authentication firebase-realtime-database