gpt4 book ai didi

firebase - 在 Firestore 中查询 Geohashes

转载 作者:行者123 更新时间:2023-12-04 17:44:24 26 4
gpt4 key购买 nike

最近我一直在研究 Geohashes和Firestore。我的待办事项场景是收集文件(餐厅),每个餐厅都会有交付给的 Geohashes 列表。

我想避免在文档 restaurant 中添加 geoashes,因为文档可能比应有的大很多倍。

最初的想法是将所有的 geohashes 放在餐厅文档的子集合中,但我发现不可能在文档的子集合中执行查询。

第二个想法是将 geohashes 提取到交付区域集合的顶层。

document:{ restaurantName: "aRestaurant", 
deliveryArea: Arraylist<String> }

这个场景中的问题是我会得到一个餐厅名称列表,然后我需要查询餐厅集合来获取它们,据我所知我无法在查询中执行 OR 操作。

这是我第一次使用文档数据库和 Firestore。任何指导将不胜感激。

最佳答案

这里是 firebaser

我们用于 Firebase 实时数据库的原始 GeoFire 库通过为 geohashes 设置单独的顶级节点精确地解决了这个问题。该节点下的每个键通常对应于另一个顶级节点中实际实体的键。

所以像这样:

locations
key1: { g: "sa7ads", l: [ 14.5232, -156.17843 ] },
key2: { g: "fds347", l: [ -127.172, 167.1324 ] }
restaurants
key1: { name: "This is the first restaurant", ... },
key2: { name: "This is the second restaurant", ... },

使用此结构,您可以对 /locations 执行地理查询,然后从 /restaurants/$key 读取范围内每家餐厅的附加信息。这扩展得很好。

我建议使用与 Cloud Firestore 相同的方法。您将有两个顶级集合:一个包含(较小的)位置数据,另一个包含关于每家餐厅的(较大的)附加数据。这会减少您阅读的数据量,尽管您最终会阅读更多文档。您必须平衡这两者(带宽与文档读取)。

几个月前我给了一个talk about performing geoqueries on Cloud Firestore这可能值得一试。

关于firebase - 在 Firestore 中查询 Geohashes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52777795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com