我查询Firebase时,即使有多个满足查询条件的文档也仅对单个文档做出响应

时间:2019-03-30 02:24:05

标签: python google-cloud-firestore

我正在尝试编写一个云函数,该函数可以返回特定位置附近的用户。 get_nearby()返回一个元组列表,其中包含用于geohash查询的上限和下限,然后此循环应查询firebase中那些geohash中的用户。

user_ref = db.collection(u'users')

db_response = []
for query_range in get_nearby(lat, long, radius):
    query = user_ref.where(u'geohash', u'>=', query_range[0]).where(u'geohash', u'<=', query_range[1]).get()
    for el in query:
        db_response.append(el.to_dict())

由于某种原因,当我运行此代码时,即使其他三个文档的geohash与该文档相同,它也只会从数据库中返回一个文档。我知道文件在那里,当我要求整个收藏时,它们确实会退还。我在这里想念什么?

编辑: 该数据库当前有4条记录,该查询应返回其中3条:

{
    {name: "Trevor",  geohash: "dnvtz"}, #this is the one that gets returned
    {name: "Test",  geohash: "dnvtz"},
    {name: "Test",  geohash: "dnvtz"}
}  

query_range是具有两个值的元组。下限和上限geohash。在这种情况下,它是(“ dnvt0”,“ dnvtz”)。

1 个答案:

答案 0 :(得分:0)

我决定从数据库中清除所有文档,然后生成一组新的示例数据以供使用(无论如何,所有内容仅用于测试,不重要)。将新数据推送到Firestore后,一切正常。我唯一的假设是,即使字符串匹配,我也会对其中一些使用错误的编码。