2017-07-12 8 views
1

Firebaseデータベースのワイルドカードクエリ を実行したいと思いますが、ライブラリがこれをサポートしているかどうかわかりません。 - (私の推測ではありません)Firebaseデータベース - プレフィックスワイルドカードクエリの実行方法

データセットが何百万ものレコードであると仮定して、ネットワークトラフィックができるだけ少ない最適なソリューションが必要です。 (接頭辞のワイルドカードを使用して)

データセット:どのようにコードは、ワイルドカードを使用してレコードid_002124名のフィールドを取得するために、次のようになり

user_id: 
     id_001123:  
        name: "java" 
     id_002124: 
        name: "objective-c" 
     id_003125: 
        name: "swift" 

、あなただけのIDの部分を持っています。例えば。 "%124"

期待される結果はid_002124だろう、と名前が「Objective-Cの」

どれモバイル言語コード例は素晴らしいだろう。

答えて

6

Firebaseデータベースクエリは、オブジェクトのキー(例:id_001123)、その値(あなたのケースでは適用されません)、または子の値プロパティ(例えば、name = "java"という事実)。

これらの各Firebaseは、指定した特定の値を持つアイテム、指定した値から始まるアイテム、または指定した値で終わるアイテムと一致させることができます。

だから、あなたがobjective-cという項目に一致するクエリを作成することができます

ref.child("user_id").orderByChild("name").equalTo("objective-c") 

それとも、とid_001124id_001125に一致するクエリを作成することができます

ref.child("user_id").orderByKey().startAt("id_001125") 

それとも単にで始まるすべてのアイテムを取得id_0011

ref.child("user_id").orderByKey().startAt("id_0011") 

それとも、とid_001123id_001124に一致するクエリを作成することができます

ref.child("user_id").orderByKey().endAt("id_001124") 

Firebaseデータベースは、値の終わりに基づいてフィルタリングすることはできません。したがって、キーが4で終わるすべての項目を取得する方法は現在のデータ構造にありません。

Firebaseデータベースクエリの詳細をここにお読みください:https://firebase.google.com/docs/database/android/lists-of-data#sorting_and_filtering_data

をそしてFirebaseL

の検索についての多くの以前の質問のいくつかを見ます
関連する問題