2016-11-30 3 views
0

私は以下のFirebaseデータベース構造を持っています。ホストが "Mike 22"のオブジェクト全体を取得したいと思います。Firebaseを使用して1つの属性に基づいてオブジェクト全体を取得しますか?

enter image description here

これはValueEventListenerイベントではありませんので、私はDataSnapshotにアクセスすることはできません。そのクエリに基づいてオブジェクトを取得するにはどうすればよいですか?私はSELECT object FROM objects WHERE host = "Mike 22"と入力してSQLスタイルでやりたいと思っています。これを行う方法はありますか?下図のように

現在、私は、データベースへの参照を持っている:

mDatabase = FirebaseDatabase.getInstance().getReference().child("objects"); 

答えて

2

。これはAndroidのガイドSorting and filtering dataで覆われています。 orderByChildequalToを使用します。

mDatabase = FirebaseDatabase.getInstance().getReference().child("objects").orderByChild("host").equalTo("Mike 22"); 
+0

わかりましたことを取得した後ので 'Query'、私はそれで何ができるのでしょうか?私はchildEventListenerを追加しようとしましたが、データを変更していないので何もしませんでした。そのクエリが作成したクラスのオブジェクトを返すようにします。 – Michael

+0

@Michaelあなたのクエリがすべてのデータと一致する場合、子リスナは既存の子ごとに一度呼び出され、変更があった場合は再び呼び出されます。 'addListenerForSingleValueEvent'を使ってリスト全体を一度読むこともできます。 –

+0

正しい場所にアタッチされ、データを読み取る権限を持っている場合は、 'ChildEventListener'と' ValueEventListener'の両方がトリガされます。アクセス許可を検出するには、http://stackoverflow.com/documentation/firebase/5548/how-do-i-listen-for-errors-when-accessing-the-database/22652/detect-errors-when-reading-を参照してください。データオンアンドロイド#t = 201611302029432848424 –

関連する問題