gpt4 book ai didi

java - Firebase .orderByChild - 尝试对数字进行排序,但它只对第一个数字进行排序

转载 作者:行者123 更新时间:2023-12-01 17:46:13 27 4
gpt4 key购买 nike

我正在使用 FirebaseRecyclerAdapter。

我有许多带有子“maxValue”的节点。假设我有五个节点,列出的每个节点的最大值分别为 34、210、90、315、74。

我期望 .oderByChild("maxValue") 像这样排列它们:315, 210, 90, 74, 34。

但是,它返回的值是 90、74、210、34、314。

因此,它会检查第一位数字,如果两个条目的第一位数字相同,则按第二位数字排序。

我需要它按整数值排序。这可能吗?还是我必须自己获取数据并进行排序?

编辑:这是我设置 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: 我对作为答案发布的解决方法感到满意,但显然我还不能接受自己的答案。现在我正在查看节点,答案可能只是因为我将最大值存储为字符串,所以它当然不会将其排序为 int。

最佳答案

Firebase 按升序对数据进行排序,这就是为什么您会得到 90、74、210、34、314。唯一的方法是检索它们,然后将数据添加到 List 中,然后执行以下操作:

Collection.reverse(myList);

https://firebase.google.com/docs/database/android/lists-of-data

https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#reverse-java.util.List-

关于java - Firebase .orderByChild - 尝试对数字进行排序,但它只对第一个数字进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60863606/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com