Жарко, чтобы получить самое большое население в городе в Firestore?
Просто с помощью запроса, который выглядит следующим образом:
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference citiesRef = rootRef.collection("cities");
Query query = citiesRef.orderBy("population", Direction.DESCENDING).limit(1);
Метод orderBy()
вызывается для упорядочения городов по убыванию в соответствии со свойством population
, а limit(1)
вызывается для ограничения результатов только одним городом, городом с наибольшим населением.
Изменить:
Из другого вашего вопроса (на который я уже дал вам ответ) вы добавляете данные в базу данных с помощью метода add()
.
Это означает, что каждый раз, когда вы добавляете новый город, вы генерируете новый идентификатор документа. Другими словами, идентификатор документа - это случайно сгенерированный ключ, а , а не название города, как я вижу в вашей схеме.
Так что, если вы используете пример из официальной документации, помимо свойства population
у вас также может быть name
города.
Чтобы отобразить название города с наибольшим населением, используйте следующие строки кода:
query.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
if (document != null) {
String name = document.getString("name");
Log.d(TAG, name);
}
}
}
}
});
Вывод в вашем logcat будет:
Los Angeles