답변

6

마음에 드는 해결책은 Google이 presence과 같이 제안하는 것과 같이 지리적 쿼리 만 실시간 데이터베이스에 추가하고 두 데이터베이스를 클라우드 기능과 동기화하는 것입니다.

제 경우에는 많은 부분을 동기화 할 필요가 없습니다. 난 그냥 실시간 데이터베이스에 자신의 위치와 uids의 목록을 유지하고 거기에 모든 지리적 쿼리를 수행합니다.

+0

나는 똑같은 생각을했습니다. 이 코드를 공유 할 수 있습니까? –

+0

나는 유감스럽게도 할 수 없다. RealDB가 메인 Firestore DB에서 삭제 될 때 UID를 삭제하기 만하면됩니다. 쿼리를 위해 Realtime DB에 위치를 기록하고 GeoFire로 UID 목록을 검색하면됩니다. – urgentx

7

Cloud Firestore는 기본적으로 지리적 포인트를 지원합니다. 지원되는 data types을 참조하십시오. 그리고 당신은 당신은 또한 데이터를 설정하는 데 사용할 수있는 GeoPoint 클래스가 쿼리를 확인할 수있는 것들 :

query.whereEqualTo("location", GeoPoint(lat, long)) 
+3

안녕하세요 SUPERCILEX, 범위에서 작동합니까? 특정 도시가 아닌 도시를 쿼리하고 해당 도시의 레스토랑을 모두 찾으십시오. –

+0

하지만 '위치'와 같은 필드의 범위 기반 쿼리는 어떻게됩니까? 이러한 쿼리는 실패하지 않지만 실제로 수행중인 작업이 무엇인지 확실하지 않습니다 ... –

35

샘 클라우드 경우 FireStore 팀에서 여기. SUPERCILEX에 따르면 Cloud Firestore는 이미 GeoPoint 데이터 유형을 지원합니다. Google은 제품에 네이티브 지리적 쿼리를 제공하기 위해 열심히 노력하고 있습니다.

네이티브 지오 쿼리가 나오기 때문에 GeoFire를 Cloud Firestore로 포팅하지 않을 것입니다. 대신 우리는 엔지니어링 노력을 네이티브 쿼리를보다 빨리 리디렉션 할 것입니다.

오늘 지리적 쿼리가 필요하고 자신의 라이브러리를 만들고 싶지 않은 경우 실시간 데이터베이스를 사용하십시오!

+16

Firestore는 갈 곳이 될 것입니다.이 구현에서 얼마나 멀리 떨어져 있습니까? 며칠? 주? 연령? – erickva

+3

예, 대략적인 타임 라인이 매우 유용합니다. 우리는 방금 Geogata로 큰 응용 프로그램을 쳐다보고 있으며, Geofire와 같은 기능이 곧 있으면 Firestore로 구현할 수 있습니다. – Georg

+6

타임 라인을 공유 할 수 없습니다. 그래도 될 수 있습니다! 이것이 앱의 중요한 기능이라면 Google이이를 기다리지 않고 기존 도구를 사용하십시오. –