Я внедрил Firebase Firestore в свое приложение для Android, и он нормально получает данные.
Выполнено вычисление для суммирования значений, которые хранятся в Firestore.
Однако я считаю, что при разработке моего кода возможны ограничения на то, что можно сделать.
Я получил данные из Firestore и сохранил их в ArrayList.Таким образом, я уже вижу, что когда ArrayList изначально заполняется из Firestore, любые новые данные не обновляли бы ArrayList.
Я думал о том, чтобы реализовать кнопку обновления или слайд для обновления, но не совсем уверен, как это сделать.
Код одинаков для разделов 2 суммы и установкизначение в текстовое представление.
personTextView = v.findViewById(R.id.personSumValue);
final ArrayList<UserPaymentModel> personArrayList = new ArrayList<>();
db.collection("userspayment").get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
if (queryDocumentSnapshots.isEmpty()) {
Log.d(TAG, "onSuccess: LIST EMPTY");
return;
} else {
List<UserPaymentModel> types = queryDocumentSnapshots.toObjects(UserPaymentModel.class);
// Add all to your list
personArrayList.addAll(types);
//Log.d(TAG, "onSuccess: " + mArrayList.get(2).getAmount());
double sum = 0;
for (UserPaymentModel u : personArrayList) {
if (u.getName().equals("Person1")) {
sum += Double.valueOf(u.getAmount());
}
}
Log.d(TAG, "onSuccess: " + sum);
personSumTextView.setText(String.valueOf(sum));
}
}
});
В основном есть 4 значения, и сложение 2 значений на основе определенных критериев суммирует различные значения,Если я добавлю новое значение, обзор реселлера будет обновлен, но сумма, показанная в верхней половине экрана, не обновится, пока я не закрою и не открою приложение повторно.