Я тысячи раз пытался получить значения для каждого ресторана, а затем получить среднее значение этих оценок для каждого из них. Вот моя база данных, где есть 3 пользователя, которые оценили рестораны: База данных Firebase Вот мой код Java:
private void displayRating () {mRatingBar.setVisibility (View.VISIBLE) ); mRatingBar.setOnRatingBarChangeListener (new RatingBar.OnRatingBarChangeListener () {@Override publi c void onRatingChanged (RatingBar ratingBar, рейтинг с плавающей запятой, логическое значение fromUser) {final DatabaseReference mRatingDb = Firebaseance namesIn (get). pos)). child ("rating"). child (currentUserId); mRatingDb.setValue (rating); финальная DatabaseReference averageRatingDb = FirebaseDatabase.getInstance (). getReference (). child (namesList.get (pos)). child (" Среднее ");
mRatingDb.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
double total = 0.0;
double count = 0.0;
double rating = ds.child(currentUserId).getValue(double.class);
total = total + rating;
count = count + 1;
double average = total / count;
averageRatingDb.setValue(average);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
});
}
По какой-то причине я чувствую, что моя функция l oop для onDataChange () вообще не работает. Я не могу получить ни один из рейтингов, поэтому могу вычислить среднее рейтинг.
Как я собираюсь получить значения от пользователей, а затем получить среднее значение для каждого ресторана отдельно?
Если кто-то может помочь, пожалуйста, я так растерялся. Спасибо .