GeoFire는 실시간 데이터베이스와 밀접하게 연결되어 있으며, 지오 쿼리는 Firestore로 마이그레이션하려는 많은 앱의 일반적인 기능 종속성입니다. Firestore 환경에서 해싱/위치 검색을 복제 할 수있는 방법이 있습니까?Firestore에서 GeoFire를 사용하는 방법이 있습니까?
답변
마음에 드는 해결책은 Google이 presence과 같이 제안하는 것과 같이 지리적 쿼리 만 실시간 데이터베이스에 추가하고 두 데이터베이스를 클라우드 기능과 동기화하는 것입니다.
제 경우에는 많은 부분을 동기화 할 필요가 없습니다. 난 그냥 실시간 데이터베이스에 자신의 위치와 uids의 목록을 유지하고 거기에 모든 지리적 쿼리를 수행합니다.
Cloud Firestore는 기본적으로 지리적 포인트를 지원합니다. 지원되는 data types을 참조하십시오. 그리고 당신은 당신은 또한 데이터를 설정하는 데 사용할 수있는 GeoPoint
클래스가 쿼리를 확인할 수있는 것들 :
query.whereEqualTo("location", GeoPoint(lat, long))
안녕하세요 SUPERCILEX, 범위에서 작동합니까? 특정 도시가 아닌 도시를 쿼리하고 해당 도시의 레스토랑을 모두 찾으십시오. –
하지만 '위치'와 같은 필드의 범위 기반 쿼리는 어떻게됩니까? 이러한 쿼리는 실패하지 않지만 실제로 수행중인 작업이 무엇인지 확실하지 않습니다 ... –
샘 클라우드 경우 FireStore 팀에서 여기. SUPERCILEX에 따르면 Cloud Firestore는 이미 GeoPoint 데이터 유형을 지원합니다. Google은 제품에 네이티브 지리적 쿼리를 제공하기 위해 열심히 노력하고 있습니다.
네이티브 지오 쿼리가 나오기 때문에 GeoFire를 Cloud Firestore로 포팅하지 않을 것입니다. 대신 우리는 엔지니어링 노력을 네이티브 쿼리를보다 빨리 리디렉션 할 것입니다.
오늘 지리적 쿼리가 필요하고 자신의 라이브러리를 만들고 싶지 않은 경우 실시간 데이터베이스를 사용하십시오!
나는 똑같은 생각을했습니다. 이 코드를 공유 할 수 있습니까? –
나는 유감스럽게도 할 수 없다. RealDB가 메인 Firestore DB에서 삭제 될 때 UID를 삭제하기 만하면됩니다. 쿼리를 위해 Realtime DB에 위치를 기록하고 GeoFire로 UID 목록을 검색하면됩니다. – urgentx