有没有办法按每个范围查询 - 纬度和经度?例如,我想让location.lat
和location.lng
范围为51.400
到52.000
和-0.100
到-0.300
的所有用户都知道。任何人都可以帮我找出这样做的查询吗?
我希望这个问题有道理。任何帮助表示赞赏。
编辑:我没有使用'地理点'数据类型。我正在使用一个带有2个浮点数的自定义对象,并希望进行简单的数字比较。问题是我不知道(并且找不到)如何构建我的查询的方法。
答案 0 :(得分:7)
这应该是可能的
userRef.where('location.lat', '>=', 51.400).where('location.lat', '<=', 52.000);
虽然我不认为如果不在同一领域,你可以链接更多.where
。
您可以尝试对其下方的location.lng
执行类似的查询,然后比较和匹配两个查询中的用户。或者检查代码中location.lng
是否在所需范围内并过滤掉这些用户。在任何情况下,你最终都会从数据库中获得比preffered更多的结果,然后丢弃一些。
答案 1 :(得分:0)
也许对此的一种解决方案是拥有一个云功能,当它进入Firebase时,会向每个文档添加一个lat_range
和一个lon_range
字段?不过,您需要具有预定义的范围-这样您才能知道要查询的内容。