Firebaseデータベースには次の構造があります。
名前、姓、または電子メールでユーザーを検索したいのですが、上のレベルにユーザーキーがあるため、これを実現する方法がわかりません。管理者セッションを実行しているため、ユーザーキーにアクセスできません。
私が試してみました:
let usersRef = firebase.database().ref('users');
usersRef.orderByValue().on("value", function(snapshot) {
console.log(snapshot.val());
snapshot.forEach(function(data) {
console.log(data.key);
});
});
しかし、それはデータベース上のすべてのユーザーをもたらします。何か案は?
equalTo()
を使用して、値によって子を見つけることができます。 name
の場合:
ref.child('users').orderByChild('name').equalTo('John Doe').on("value", function(snapshot) {
console.log(snapshot.val());
snapshot.forEach(function(data) {
console.log(data.key);
});
});
orderByChild()
の目的は、フィルタリング/検索するフィールドを定義することです。 equalTo()
は、文字列、int、およびブール値を取得できます。
自動生成キー(pushKey
)でも使用できます。
すべてのドキュメントを見つけることができます こちら