0

我有一個從Firebase後端獲取其數據的Ionic移動應用程序。在一頁上,我可以得到每個電臺的位置和當前價格的電臺列表。我想要做的是按位置過濾列表,然後按價格排序。OrderByChild使用Firebase過濾列表後的查詢

let query = this.db.list('/stations', { 
     query: { 
     orderByChild: 'distanceFromUser', 
     endAt: 50.0, 
     limitToFirst: 20 
     } 
    }); 

    this.stations = query, { 
     query: { 
     orderByChild: 'currentPrice', 
     } 
    } 

此代碼顯然不工作,但它顯示我想要完成的。首先創建一個包含50公里範圍內最近的20個電臺的查詢,然後按currentPrice排序此列表。

有沒有辦法讓Firebase發生這種情況?

+0

作爲Saksham說,常見的解決方法火力地堡的極限一種排序/過濾器屬性是將要在一個屬性中過濾的值組合在一起。但是,將兩個數值組合在一起以允許對它們執行範圍查詢的方式很不常見。我唯一見過的是Geofire,它將經緯度合併爲一個可查詢屬性。 –

回答

0

您可以嘗試製作一個像distanceFromUser_currentPrice這樣的兩個結合的新子項,然後在查詢中使用它。

此外,您在50公里半徑範圍內尋找20個最接近站查詢是不是要去工作,因爲ENDAT還將與距離返回站像150.0,250.0等