Android 查询Firebase实时数据库,查询(经纬度)在5公里附近

Android 查询Firebase实时数据库,查询(经纬度)在5公里附近,android,firebase,performance,firebase-realtime-database,Android,Firebase,Performance,Firebase Realtime Database,我的数据库结构具有如图所示的经度和纬度值。 问题是,我想查询5公里范围内的“密钥”。 我能做的是读取所有数据,计算这些地质点和矿山地质点之间的距离,然后选择5公里以下的距离。但这将花费我大量的交易,而且这不是一种优化的方式 我知道geoquery在那里,但我不能在那里使用分页(文档中没有提到)。 任何人请帮助我找到查询数据库或结构数据库的方法,以便在5公里内找到密钥。由于Firebase Realtime database只能对一个属性进行排序/筛选,您无法使用当前的数据结构同时查询纬度和经度

我的数据库结构具有如图所示的经度和纬度值。

问题是,我想查询5公里范围内的“密钥”。 我能做的是读取所有数据,计算这些地质点和矿山地质点之间的距离,然后选择5公里以下的距离。但这将花费我大量的交易,而且这不是一种优化的方式

我知道geoquery在那里,但我不能在那里使用分页(文档中没有提到)。
任何人请帮助我找到查询数据库或结构数据库的方法,以便在5公里内找到密钥。

由于Firebase Realtime database只能对一个属性进行排序/筛选,您无法使用当前的数据结构同时查询纬度和经度。解决方案是添加geohash,这是一个神奇的值,它将lat+lon组合成一个可查询的值。Firebase有一个名为GeoFire的附加库,我建议您签出它,因为它很好地包装了这个过程。@FrankvanPuffelen但是如何使用GeoFire的分页呢