2016-07-23 1 views
2

같은 위치에 많은 항목이 있습니다. Geofire를 사용하여 최신 항목을 10 개만 추가하고 싶습니다. Query.limitToLast()를 사용하여 Firebase로 쉽게 수행 할 수 있지만 Geofire로 수행하는 방법을 알지 못합니다.GeoFire에서 쿼리 한 항목 수를 제한하십시오.

가능하지 않은 경우 적용 가능한 해결 방법이 있습니까?

+0

의 모양에 따라

을 원하는 한계에 도달 반경별로. 최근에 추가 된 항목을 얻고 싶다면 FirebaseQuery를 사용하여'geofire' 노드가 아닌'items' 노드에서 할 수 있습니다. 물론 그것은 경우에 따라 다릅니다. – Wilik

답변

1

Geofire에서 키 수를 제한 할 수있는 방법이 없습니다. 쿼리하는 범위에 속하는 모든 키를 반환합니다.

내가 생각할 수있는 유일한 것은 주변에 이미 다른 항목이있는 경우 항목을 삽입하지 않는 것입니다. 이 경우 데이터베이스에 쓰는 동안 본질적으로 항목을 클러스터링합니다.

+0

항목이 메시지이고 같은 위치에 있어도 모두 삽입해야하는 문제 ... 오래된 메시지입니다. (내 사용자가 관심을 가질 것으로 생각하지 않습니다. 50 개 이상의 오래된 메시지) ... GeoFire를 사용하여이 작업을 수행 할 수 없다는 것을 발견했으며이를 해결하기위한 방법이나 방법을 찾으려고합니다. 불행히도, 나는 성공하지 못했습니다. 다른 제안이 있습니까? – user655561

+0

해결 방법 : geofire 이외의 다른 작업이 필요합니다. 예를 들어 다른 테이블을 firebase에 저장하고 geofire 쿼리를 제한하는 데 사용할 수 있습니다. – user655561

+0

반환 값은 생성 시간에 따라 정렬됩니다. 그 순서를 뒤집을 수 있다면 항목 수가 50 개일 때 청취자를 제거 할 것입니다. 생성 순서를 바꾸는 방법이 있습니까? – user655561

1

하나 이에 대한 해결책이있다 : 당신은 작은 반경 질의를 시작해야

,

하고 onGeoQueryReady을 (도달 할 때마다) ("모든 데이터가로드 된"), 당신은 증가 당신까지 .setRadius (R)와 geoquery 소량으로 반경은 단지 거기에 당신이 GeoFire에있는 항목의 수에 의해 제한하는 그런 방법은 없다처럼이 https://github.com/firebase/geofire-js/issues/59

관련 문제