2016-11-30 61 views
0

我有以下Firebase數據庫結構,我想要檢索具有「Mike 22」主機的整個對象。使用Firebase基於1屬性檢索整個對象?

enter image description here

這是不是在ValueEventListener事件,所以我沒有訪問DataSnapshot。我如何根據查詢檢索對象?我想用一種SQL風格來完成,你可以輸入SELECT object FROM objects WHERE host = "Mike 22"。有沒有辦法做到這一點?

目前我有參考數據庫,如下所示:

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

回答

2

這是覆蓋在Sorting and filtering data Android的指南中。使用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-數據上的Android#噸= 201611302029432848424 –