0
我在Swift中構建了一個應用程序,用戶(可以發佈他們在街上見到的事件的位置,每個事件的生命週期爲45分鐘,然後它不會在地圖上顯示。該閾值改進GeoFire查詢性能 - Firebase
我建我的Json樹像這樣(地點和事件共享相同的ID - 在這裏沒有代表):
firebaseapp {
locations {
g
l {
0: "latitude"
1: "longitude"
}
}
events {
timestamp: "UTC timestamp"
description: "my description"
user: "id of user"
}
users {
// User data
}
}
我查詢對應的區域顯示在屏幕上的所有位置,然後我查詢不到45分鐘前發生的事件,我這樣做:
regionQuery = geoFire.queryWithRegion(mapView.region)
regionQuery.observeEventType(.KeyEntered, withBlock: { (key: String!, location: CLLocation!) in
// I query my events based on the key here
})
這個方法的問題是,對於一個特定的區域,我查詢過去發生的事件的所有位置(可以是一個LOT),然後我查詢那些發生少於45分鐘的事件之前使用tradionnal Firebase查詢。
有沒有更好的解決方案,我的問題,因爲恐怕我會很快穿越帶寬的閾值,如果每次用戶移動地圖,顯示的區域的所有位置都加載...
嗨,弗蘭克,謝謝你的回答!有沒有辦法將最近到歷史服務器端的位置與Firebase轉移?或者我應該做客戶端? – Viro
沒有「移動」API。除非你有非常不尋常的情況,否則不應該需要。複製/粘貼/刪除對於大多數JSON大小來說足夠快。 –
對,我要在客戶端編寫一些邏輯將位置從一個分支移動到另一個分支。再次感謝弗蘭克 – Viro