2016-11-07 31 views
18

: firebase databaseFirebase arama benim Firebase veritabanında aşağıdaki yapıya sahip

ben isim, soyadı veya e-posta yoluyla bir kullanıcıyı aramak isterler, ben yukarıdaki düzeyde kullanıcı anahtarı olarak Bunu nasıl başarabileceğimi bilmiyorum. Ben yönetici oturumu yapıyorum ve bu yüzden kullanıcı anahtarına erişemezdi.

let usersRef = firebase.database().ref('users'); 
usersRef.orderByValue().on("value", function(snapshot) { 
    console.log(snapshot.val()); 
    snapshot.forEach(function(data) { 
     console.log(data.key); 
    }); 
}); 

Ama veritabanı üzerinde tüm kullanıcılar getirdiğini:

denedim. Herhangi bir fikir?

cevap

24

Herhangi bir değeri değer bulmak için equalTo()'u kullanabilirsiniz. name ederek durumunda:

ref.child('users').orderByChild('name').equalTo('John Doe').on("value", function(snapshot) { 
    console.log(snapshot.val()); 
    snapshot.forEach(function(data) { 
     console.log(data.key); 
    }); 
}); 

Sen here

+0

bir otomatik tamamlama sistemi olarak gerçekleştirmek için bu mümkün mü bütün belgeleri bulabilirim? Bir kullanıcı 'John' yazarsa, alaka düzeyine göre orderByChild'i arayabilir misiniz? – Epicality

+0

@Epicality 'startAt()' ile istediğiniz gibi bir şey yapmak için kullanabilirsiniz. [Burada] (https://firebase.google.com/docs/database/web/lists-of-data#filtering_data) tüm belgeleri bulabilirsiniz. Ama temelde 'equalTo()' olarak arama yapar, ancak yalnızca dizenin kullanıcıların yazarak başlayıp başlamadığını kontrol eder. –

+0

Boole değerleri ile iki alana sahip olan düğümleri nasıl alabilirim: ilk alan veya ikinci "true"? –