2 nesneye sahip bir veritabanım var. Bu şuna benzer: kullanıcı veritabanı sorun nedirFirebase Angularfire2 Kullanıcının veritabanında mevcut olup olmadığını kontrol etme
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");
}
})
}
bulunuyorsa
users
- KEY
login: "xexe"
password: "123"
- KEY
login: "dede"
password: "123"
Şimdi kontrol ediyorum? Ben düğmesi ilk kez bir tıklayın gönderdiğinizde
(kullanıcı gerektiği var)
yönettiği "dede" isime sahip bir kullanıcı kaydı deneyelim, konsol gösterilmektedir: Users exists
-> iyi, bu iyi.
Sorun
Sonra console.log bana iki mesaj
User does not exist
User exists
ve bunun ne etmemelidir yeni bir kullanıcı eklersiniz gösterir (web sayfasını yenilemeden) ikinci kez göndermek tıkladığınızda ise yapıldı. Neden abone fonksiyonu ikinci kez her satırda yinelenir? Nasıl düzeltilir?
Eğer "if (data. $ Value! = Null) {' yerine, "if (data. $ Value! == null) {'? – alltej
AngularFire2 kullanıyorum. Bu kontrol nesnesi çalışmıyor gibi görünüyor. – alltej
da bunu yapmalıyım '' const user = this.af.database.object ('users/$ {login}', {preserveSnapshot: true}); '' çalışmak ve kullanmak için 'data.val 'yapmak) ' – alltej