Проблема в вашем коде заключается в том, что в вашем UserDataModel
есть поле с именем userRating
, а в вашей базе данных это свойство на самом деле uid
. Это свойство Dynami c, поэтому вы не можете использовать класс POJO для этого. Если вы хотите получить значения этих оценок, попробуйте следующее:
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference ratingsRef = rootRef.child("Users").child(uid).child("Ratings");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
double rating = ds.getValue(Double.class);
Log.d("TAG", "rating: " + rating);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d("TAG", databaseError.getMessage()); //Don't ignore errors!
}
};
ratingsRef.addListenerForSingleValueEvent(valueEventListener);
Выводом в logcat будут значения всех оценок, которые существуют в узле Ratings
.
3.5
2
Теперь с этими значениями вы можете просто сделать среднее или все, что вам нужно.