如何使用GeoQuery按位置和特定值排序? (Android)

时间:2019-03-24 22:49:58

标签: android google-cloud-firestore geofirestore

这是Firestore的地理查询:https://github.com/imperiumlabs/GeoFirestore-Android 但这不允许进一步排序。  我想按最近和最著名的用户进行排序,我该怎么做?还有其他可能的库吗?

1 个答案:

答案 0 :(得分:0)

Geofire在Firestore上似乎已经做不到一些事情:它对两个值(纬度和经度)执行范围查询。它通过创建一个geohash值来做到这一点,该值将纬度和经度组合为一个值,该值可用于选择彼此接近的文档范围。

要允许另外选择另一个字段的范围,您必须找到一种将另一个字段的值合并为Geohash值的方法。从本质上讲,这意味着您必须找到一种方法来表达声望(您的附加属性)作为位置(距离)的函数的重要性,并以此为基础计算单个字段值。尽管从技术上讲这可能可行,但我怀疑有人能做到这一点。

要了解位置过滤的工作原理(以及为什么添加一个额外的字段并不像看起来那样简单),请查看: