GeoFire读取操作效率

时间:2019-08-15 19:22:50

标签: firebase google-cloud-firestore geofire geohashing geofirestore

我正在使用geofire在用户走动时查询Firestore。这是我的问题:

比方说,我的Firestore数据库中有5000条经过地理哈希处理的记录,它们随机分布在世界各地。记录全部存储在数据库的根节点之外。当我执行半径很小的geofire查询时,会发生以下情况(假设默认的geofire参数):

选项1:第一个地理位置查询会在所有5000个键中搜索匹配项,从而生成5000个可计费的Firebase读取操作。此后,每个地理位置查询(从相同位置或不同位置)都使用5000个键的缓存副本,并且不会生成可计费的读取操作。

选项2:无论地理查询中心点或半径发生变化,每个地理查询都会生成新的5000个可计费Firebase读取操作

选项3:完全不一样!

1 个答案:

答案 0 :(得分:2)

在Cloud Firestore中发生的唯一可计费读取是返回给客户端的那些文档。 GeoFire不会改变这一事实。 GeoFire会满足您的要求,并将其转换为Firestore查询,该查询至少与将落入您请求的半径范围内的文档数量相匹配,并且可能会更多。它不会考虑集合中的所有文档。那将是非常低效的,并且首先会破坏地质哈希的目的。

来自他们的documentation

  

GeoFire仅在特定位置附近有选择地加载数据,即使有非常大的数据集,也可以保持应用程序的轻量级和响应能力。