Я использую FirebaseRecyclerAdapter.
У меня много узлов с дочерним "maxValue". Допустим, у меня есть пять узлов, максимальные значения каждого из которых перечислены 34, 210, 90, 315, 74.
Я ожидал .oderByChild ("maxValue"), чтобы упорядочить их следующим образом: 315, 210, 90, 74, 34.
Однако он возвращает их как 90, 74, 210, 34, 314.
Таким образом, он проверяет первый di git, затем, если две записи имеют тот же первый di git, затем сортируется по второму di git.
Мне нужно его отсортировать по значению целого числа. Возможно ли это, или мне придется взять данные и отсортировать их самостоятельно?
Редактировать: Вот мой полный код настройки FirebaseRecyclerAdapter.
Query query = databaseReference.orderByChild("maxValue");
FirebaseRecyclerOptions<ExerciseMaxesModelClass> options = new FirebaseRecyclerOptions
.Builder<ExerciseMaxesModelClass>()
.setQuery(query, ExerciseMaxesModelClass.class)
.build();
firebaseAdapter = new FirebaseRecyclerAdapter<ExerciseMaxesModelClass, ExerciseMaxesViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull ExerciseMaxesViewHolder holder, int position,
@NonNull ExerciseMaxesModelClass model) {
holder.setDate(model.getDate());
holder.setExerciseName(model.getExerciseName());
holder.setIsImperial(model.isIsImperial());
holder.setIsImperialPOV(isImperial);
holder.setMaxValue(model.getMaxValue());
}
@Override
public ExerciseMaxesViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.exercise_maxes_list_item, parent, false);
return new ExerciseMaxesViewHolder(view);
}
};
Что пример узла выглядит так:
Bench Press (Barbell - Flat)
- date: "2019-11-28"
- exerciseName: "Bench Press (Barbell - Flat)"
- isImperial: true
- maxValue: "315"
Редактировать 2: Я доволен обходным решением, которое я опубликовал в качестве ответа, но, очевидно, я пока не могу принять свой собственный ответ , Теперь, когда я смотрю на узел, ответ может быть просто потому, что я храню максимальное значение в виде строки, поэтому оно, конечно, не сортирует его как целое число.