2017-12-30 26 views
-1

データベースからすべての人物を取得したいと思います。Firebaseリアルタイムデータベースを照会してフィルタリングする方法

これまでのところ、これは私のコードです:

admin.database().ref('persons').orderByChild('Firstname').equalTo(firstName).limitToLast(1).once("value").then(function(snapshot) { 
} 

このコードはのみファーストネームをフィルタリング動作しますが、私は姓のための別のWhere句を追加するのいずれかの方法を見つける傾けます。別の注文を追加しようとしましたが、動作していないようです。リアルタイムデータベースは単純なクエリを作成するのが難しいですか?

+0

Firebaseリアルタイムデータベースクエリは、単一のプロパティに対してのみ順序付け/フィルタリングできます。多くの場合、フィルタリングする値を単一の(合成)プロパティに結合することができます。 「FirstName_LastName」:「Frank_van Puffelen」です。これと他のアプローチの例については、私の答えはこちらをご覧ください:http://stackoverflow.com/questions/26700924/query-based-on-multiple-where-clauses-in-firebase –

答えて

1

短い答え:できません。長い答え:Googleの新しいFirestoreデータベースを使用するか、クライアントで手動でフィルタリングを実行します。他のオプションについては、this answerを参照してください。

+0

私は誰でもリアルタイムデータベースそれは吸う!答えをありがとう! – Mizlul

+1

はい、カスタムインデックスで...できます。 https://stackoverflow.com/questions/26700924/query-based-on-multiple-where-clauses-in-firebase – charlietfl

+0

それはあなたが言うことはできない答えを読むなら、それは真実ではありません。 'indexOn'は、任意の子をソートするときの読み込みパフォーマンスを改善する単なる方法です。 – SUPERCILEX

関連する問題