Firebase Angularfire2检查数据库中是否存在用户
发布时间:2020-05-23 06:17:31 所属栏目:MsSql 来源:互联网
导读:我有一个包含2个对象的数据库.它看起来像这样: users - KEY login: xexe password: 123 - KEY login: dede password: 123 现在我正在检查数据库中是否存在用户 constructor(private af: AngularFire) {
|
我有一个包含2个对象的数据库.它看起来像这样: users
- KEY
login: "xexe"
password: "123"
- KEY
login: "dede"
password: "123"
现在我正在检查数据库中是否存在用户 constructor(private af: AngularFire) {
this.users = af.database.list('/users');
}
registerUser(login: string,password: string) {
this.af.database.list('/users',{
query: {
orderByChild: 'login',equalTo: login
}
}).subscribe(response => {
if(response.length === 0) {
console.log("User does not exist");
//here i will add a user
} else {
console.log("Users exists");
}
})
}
有什么问题? 让我们尝试使用“dede”登录注册用户(用户应该存在) 当我第一次单击提交按钮时,控制台显示: 问题是当我第二次点击提交时(没有刷新网页) 然后console.log向我显示了两条消息 User does not exist User exists 这将为新用户添加不应该做的事情.为什么第二次订阅函数遍历每一行?怎么解决? 解决方法您可以构建数据以使用登录属性作为KEY,而不是使用查询.{
"users": {
"dede": {
"login": "dede","password": "Do not store passwords :)"
},"xexe": {
"login": "xexe"
}
}
}
现在,您可以创建对此位置的引用,并检查该对象是否存在. registerUser(login: string,password: string) {
const user = this.af.database.object(`users/${login}`);
user.subscribe(data => {
if(data.$value !== null) {
console.log('User does not exist');
} else {
console.log('User does exist');
}
});
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
