2016-06-08 128 views
1

也許我錯過了一些東西,但我正在研究用於我的下一個項目的後端。現在,Firebase處於最前沿。Firebase查詢在哪裏

但是,使用Firebase進行查詢時,您似乎無法進行傳統的SQL查詢,因爲它的JSON數據庫?如WHOO foo ...似乎只限於EQUALS。

如果我想做一些像WHERE foo小於或者超過,不要告訴我只需要抓取所有數據並在本地過濾它?

或者是因爲JSON比SQL數據庫輕得多,它只能獲取大塊的數據分頁然後在本地進行過濾更加可行?

我希望你能爲我解決這個問題。謝謝。

+0

還有其他一些查詢數據的選項 - 您能否提供Firebase結構的一部分(請以文本形式)和用例?用這些數據點直接解決問題會更容易。 – Jay

回答

2

是的,的確,在Firebase中,您不會發現典型的SQL查詢,例如簡單地執行where something > somevalue,但它們確實提供類似於基本where子句的選項。

例如

如果我們有像where height > 3

查詢我們這樣做是在像

FQuery *queryRef = [[ref queryOrderedByChild:@"height"] queryStartingAtValue:@3]; 

舊版文檔火力解釋的很詳細 https://www.firebase.com/docs/ios/guide/retrieving-data.html

3

而不是在條款中,有幾種方法你可以用它來過濾數據火力...

您檢查latest Doc.,部分過濾數據

過濾數據

要過濾數據,你可以混合使用任何的限度或範圍的方法在構建查詢時使用order-by方法。

Method    | Usage 
------------------------------------------------------------------ 
queryLimitedToFirst  Sets the maximum number of items to return from the beginning of the ordered list of results. 
queryLimitedToLast  Sets the maximum number of items to return from the end of the ordered list of results. 
queryStartingAtValue Return items greater than or equal to the specified key, value, or priority, depending on the order-by method chosen. 
queryEndingAtValue  Return items less than or equal to the specified key, value, or priority, depending on the order-by method chosen. 
queryEqualToValue  Return items equal to the specified key, value, or priority, depending on the order-by method chosen. 

不同於訂單的方法,你可以將多個限度或範圍功能。例如,您可以組合queryStartingAtValue和queryEndingAtValue方法將結果限制爲指定的值範圍。