2016-07-11 18 views
0

That's my Firebase StructureFirebaseクエリキーワードの配列

私のコード

FirebaseDatabase database = FirebaseDatabase.getInstance(); 
DatabaseReference myRef = database.getReference("stock"); 
Query i = myRef.orderByChild("keywords").equalTo("Hammer"); 
i.addValueEventListener(new ValueEventListener(){ 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     System.out.println(dataSnapshot.getValue());  
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 

    } 
}); 

私の問題:私は、例えばキーワードでクエリー項目を1つだけしたいです。 "ハンマー"、しかし私は値としてヌルになってしまった。 "orderByChild(" keyword ")。equalTo(" Hammer ")のようにクエリすると、"同じnull値が得られます。私を助けてください。

+1

ここで質問をするためにこのガイドをお読みください:http://stackoverflow.com/help/how-to-ask –

+0

コードをテキストとして追加してください。 'myRef'が参照しているものを含みます。 – adolfosrs

+0

@adolfosrsデータベースに「在庫」ノードがありません –

答えて

1

orderByChildは、参照しているブランチの次のレベルの子のみを調べます(/stocks)。あなたのコードは、子どもがkeywords/0/keywordの場合にのみ有効です。/stocks。その/stocks/inserate/0の下にそれ以来働いていない。

Query i = myRef.child("inserate/0/keywords").orderByChild("keyword").equalTo("Hammer"); 

これはトリックを行いますが、正確には望むものではない可能性があります。 iseratesの子をすべて検索する場合は、データベースにリファクタリングを行う必要があります。

関連する問題