Я пытаюсь отсортировать рестораны по среднему рейтингу с помощью orderByChild (), но вместо того, чтобы возвращать их, сортируя их по среднему рейтингу, это не так.
Вот мой код:
public void filterQuality(){
DatabaseReference mRatingDb = FirebaseDatabase.getInstance().getReference();
Query topQualityQuery = mRatingDb.orderByChild("Average");
topQualityQuery.addListenerForSingleValueEvent(new ValueEventListener()
{
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Map <String, Double> topQualityMap = new HashMap<>();
List list = new ArrayList();
List list2 = new ArrayList();
for (DataSnapshot ds: dataSnapshot.getChildren()){
topQualityMap.put(ds.getKey(), ds.child("Quality").child("Average").getValue(double.class));
list.add(ds.child("Quality").child("Average").getValue(double.class));
list2.add(ds.getKey());
Log.d("Top Quality", "Value" + topQualityMap);
Log.d("Top Quality", "Value" + list);
Log.d("Top Quality", "Value" + list2);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
Это то, что я получаю из карт и списков из того, что я пытался отлаживать:
Значение [3.0]
Значение [Jurys Inn Newcastle]
Значение {Malmaison Newcastle = 2.0, Jurys Inn Newcastle = 3.0}
D / Высшее качество: значение [3.0, 2.0]
D / Высшее качество: Значение [Jurys Inn Newcastle, Malmaison Newcastle]
D / Высшее качество: Стоимость {Malmaison Newcastle = 2,0, Jurys Inn Newcastle = 3,0, The County Hotel, Ньюкасл = 4,0}
Значение [3,0, 2,0, 4,0]
Значение [Jurys Inn Newcastle, Malmaison Newcastle, The County Hotel, Ньюкасл]
Вот моя база:
Если кто-то знает, почему это не работает должным образом, пожалуйста, помогите. Спасибо.