【发布时间】:2021-04-20 15:12:03
【问题描述】:
我有一个 Android 项目,我需要查询附近的项目并且这些项目应该按时间排序。
基本上,我需要 100 公里以内的文档。按时间(字段)排序。
所以我已经检查了 Firestore 文档,我得到了 solution(将 geoHash 添加到文档,然后通过 geoHasBounds 查询它们)但是有一个问题,如果 100 公里内有 1k 个文档,那么它将加载所有不是很好,那么我怎样才能限制这些不同的查询并只获得 25-30 个文档,然后再获得 25-30 个文档??
简而言之,这就是我需要的-
如何查询100KM半径内最新的25个文档以及用户向下滚动接下来的25个文档的时间?
这是我的查询代码-
List<GeoQueryBounds> bounds = GeoFireUtils.getGeoHashQueryBounds(center, radiusInM);
final List<Task<QuerySnapshot>> tasks = new ArrayList<>();
for (GeoQueryBounds b : bounds) {
Query newQuery = itemQuery.orderBy("geoHash").startAt(b.startHash).endAt(b.endHash);
tasks.add(newQuery.get());
}
// Collect all the query results together into a single list
Tasks.whenAllComplete(tasks).........
【问题讨论】:
标签: android firebase google-cloud-firestore