2016-07-26 202 views
0

我的應用在Firebase中存儲了會面。每次聚會都有一個結束日期,該日期已轉換爲字符串並保存在Firebase中作爲聚會的屬性(請參見圖片)。當應用程序從Firebase中檢索數據時,它會將所有聚會拉入數組中,並在結束日期過去時過濾出聚會。我試圖找到一種方法來查詢Firebase,它只會將結束日期等於或大於當前日期的聚會拉回。過去沒有結束日期的聚會是不需要的,並且永遠不會顯示在應用程序上,而且會增加用於下載聚會的網絡帶寬。有沒有人有任何解決方案/建議如何排除查詢中的聚會,以便我不必在客戶端過濾掉聚會? enter image description here按日期從Firebase檢索數據

+2

將'startDate'和'endDate'存儲爲Unix時間戳記,以便您能夠比較它。 – triandicAnt

+0

@ triple.s thanks!我會試試這個 – chickenparm

回答

3

火力地堡提供了一堆查詢和這裏限制功能:

https://firebase.google.com/docs/reference/ios/firebasedatabase/interface_f_i_r_database_query#a5d089e583013c7cdcd653f974e2cba56

如果我沒有記錯的話,你應該能夠建立聚會有限查詢,像這樣

ref.child("meetups").queryOrderedByChild("endDate").queryStartingAtValue(currentDate).queryEndingAtValue(currentDate).observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in 
    //do something  
}) 

編輯

你會想要t o將startDate和endDate字段存儲爲時間戳記

+0

非常感謝。我會嘗試一下,並會更新它的工作原理。 – chickenparm

+0

你能解釋爲什麼包含.queryEndingAtValue(currentDate)嗎? – chickenparm

+0

是的,這是不正確的,好趕上。因爲您希望endDates等於並大於當前日期,所以您應該需要的是queryStartingAtValue。 – MFreundlich