我有一个包含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"); } }) }
有什么问题?
当我第一次单击提交按钮时,控制台显示:
用户存在 – >好吧,那很好.
问题是当我第二次点击提交时(没有刷新网页)
然后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'); } }); }