当用户四处走动时,我使用geofire查询Firestore。我的问题是:
假设我的Firestore数据库中有5000条地理哈希记录,它们随机分布在世界各地。所有记录都存储在db中的根节点上。当我以非常小的半径执行地火查询时,会发生以下情况(假设默认的地火参数):
选项1:第一个geoquery在搜索所有5000个键以查找匹配项时生成5000个可计费的防火墙读取操作。此后,每个geoquery (来自同一位置或不同位置)使用5000键的缓存副本,并且不生成可计费的读取操作。
选项2:每个geoquery生成一个新的5000可计费的防火墙读取操作,而不管地理查询的中心点或半径是否改变。
选项3:完全是别的东西!
发布于 2019-08-15 20:22:56
中唯一的可计费读取是那些返回给客户端的文档。GeoFire并没有改变这个事实。GeoFire只是获取您的需求,将其转换为一个Firestore查询,该查询至少与您所请求的radius中的文档数量相匹配,可能还有一些额外的文档。它不考虑集合中的所有文档。这将是巨大的低效,并且从一开始就违背了地理哈希的目的。
从他们的文档
GeoFire只选择性地加载某些位置附近的数据,从而保持应用程序的轻巧和响应性,即使使用非常大的数据集。
https://stackoverflow.com/questions/57515068
复制相似问题