按自定义对象字段查询Google Firestore数据库

时间:2017-11-07 18:44:26

标签: google-cloud-firestore

我有以下Google Firestore数据库结构: enter image description here

有没有办法按每个范围查询 - 纬度和经度?例如,我想让location.latlocation.lng范围为51.40052.000-0.100-0.300的所有用户都知道。任何人都可以帮我找出这样做的查询吗?

我希望这个问题有道理。任何帮助表示赞赏。

编辑:我没有使用'地理点'数据类型。我正在使用一个带有2个浮点数的自定义对象,并希望进行简单的数字比较。问题是我不知道(并且找不到)如何构建我的查询的方法。

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字段?不过,您需要具有预定义的范围-这样您才能知道要查询的内容。