2016-08-13 8 views
0

私はAndroidベースのアプリケーションをrdbmsからfirebaseに移しています.Firebaseの初心者のように、私はいくつかのクエリに苦労しています。私は子供の "カテゴリ" を持っているこの記事DBにFirebase複合 "クエリ"を含む

{ 
    "posts" : { 
    "-KNnbTHJGm83zpSELWwB" : { 
     ".priority" : "6gydj46kg0", 
     "branch" : "Branch", 
     "category" : "Categoria", 
     "expiration" : "24h", 
     "g" : "6gydj46kg0", 
     "l" : [ -23.5415083, -46.88642 ], 
     "photo" : "mPostPic_20160728192627.jpeg", 
     "price" : 10, 
     "priority" : 0, 
     "product" : "ipad", 
     "userKey" : "BNd8RP5qHoc0q7f9gn8cLjPy5Ux1", 
     "offerMessage": "Valido ate as 14:00 hs", 
     "likeCount": 0 
    } 
    } 
} 

は私がFBで以下のDBを持っています。私はいくつかのカテゴリのリストを持っており、値カテゴリがこのカテゴリリストの中にある投稿のみをクエリする必要があります。

私は.start()と.end()を試しましたが、動作していません。

答えて

0

Firebaseの機能equalToを検索しています。 FirebaseオブジェクトまたはDatabaseReferenceすることができFirebase、myFirebaseReferenceのバージョンによって

Query myQuery = myFirebaseReference.child("posts") 
    .orderByChild("category") 
    .equalTo("Categoria"); 

:あなたはそのような何かを行うことができます。

1

基準のリストが連続している場合は、startAt()endAt()で取得できます。あなたは既にそれを試していると言いますから、あなたは何か間違ったことをしました(あなたのコードがそのような場合に助けになることを見て)か、基準が連続していません。

後者の場合は、SQLのWHERE category IN ("Categoria", "Categorib", "Categoric")と同等のクエリである可能性が高くなります。 Firebaseにはそのような操作はありません。代わりに、結果を達成するためにequalToで複数のクエリを実行する必要があります。

また、データを別々にモデル化して、基準の投稿を一度に取得できるようにすることもできます。これは必ずしも可能ではありませんが、それがそうであれば、Query based on multiple where clauses in firebaseで概説されたアプローチに従います。

+1

はいフランクです。これはまさに私が探しているものです。私はFirebaseで経験を積み重ねようとしていますが、いくつかの古いコンセプトは実装するのがより複雑です。私はデータモデルを変更し、私が達成できるかどうかを見てみよう。私はあなたに知らせておきます。 –

関連する問題