我正在使用Firebase以最后一次扫描的经度和纬度存储用户。查询附近位置
的条目是这样的:
"Bdhwu37Jdmd28DmenHahd221" : {
"country_code" : "at",
"firstname" : "John",
"gender" : "m",
"lat" : 11.2549387,
"lon" : 17.3419559
}
当用户按下特定的“搜索”按钮,我希望我的火力地堡的功能,以获取人们最接近谁发送请求的人。
由于Firebase仅允许在一个字段后查询,因此我决定添加country_code,以便对该字段有一些范围限制和查询。但是,当我加载特定国家的每个用户时,它仍然超级慢,然后检查给定用户和同一个国家中的所有其他用户之间的最小距离。
已经有5个用户,该功能需要40秒才能实现结果。
我也读过关于复合索引,但我需要以某种方式结合纬度和经度和两个领域的查询。
是否有任何方法可以获得第二个和第三个查询(例如搜索相同的country_code,然后是类似的经度和纬度),还是必须在我的服务器代码中解决这个问题?
https://github.com/firebase/geofire – cartant