Достаточно просто построить узел для каждого дня и вывести геошаши внутрь, но как я могу затем просмотреть эти данные, не загружая все 5000 результатов, например, в городе Нью-Йорке?
Пожалуйста, дайте мне знать, если я неверно истолковал ваш вопрос.Сможете ли вы создать DatabaseReference для узла, представляющего определенный день, создающего объект GeoFire и GeoQuery, повторяющихся для каждого дня?
DatabaseReference ref = FirebaseDatabase.getInstance().getReference("path/to/dayNode");
GeoFire geoFire = new GeoFire(ref);
GeoQuery geoQuery = geoFire.queryAtLocation(new GeoLocation(37.7832, -122.4056), 0.6); // Use this for addGeoQueryEventListener() or something else
// See https://github.com/firebase/geofire-java
Это позволит вам загружать местоположения только на 0,6 км.окружающий 37,7832, -122,4056.Чтобы предотвратить одновременную загрузку слишком большого количества результатов, начните с малого радиуса и увеличивайте оттуда?
В качестве примечания, я считаю, что Firebase Firestore допускает несколько состояний курсора, таких как:
db.collection("locations")
.orderBy("locationhash")
.orderBy("date")
.startAt(locationHash, startDate)
.limit(25);
К сожалению, я не думаю, что вы сможете указать радиус при сортировке по дате и разбивке на страницы, если вы не продлили работу, выполненную в GeoFire или GeoFirestore.Надеюсь, у кого-то есть идея получше.