Firebase Angularfire2检查数据库中是否存在用户
发布时间:2020-12-12 08:54:07 所属栏目:MsSql教程 来源:网络整理
导读:我有一个包含2个对象的数据库.它看起来像这样: users - KEY login: "xexe" password: "123" - KEY login: "dede" password: "123" 现在我正在检查数据库中是否存在用户 constructor(private af: AngularFire) { this.users = af.database.list('/users'); }
我有一个包含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'); } }); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |