Java 如何根据创建的时间对Firebase数据进行排序?
大家好,我使用Java 如何根据创建的时间对Firebase数据进行排序?,java,android,firebase,firebase-realtime-database,android-recyclerview,Java,Android,Firebase,Firebase Realtime Database,Android Recyclerview,大家好,我使用Query从应用程序中的Firebase实时数据库加载了一些数据 以下是简单的代码: 由于orderByChild(“name”),每当在数据库中插入新数据时,都与插入数据的时间不一致。相反,它以随机顺序将数据插入recyclerView 如何修复它,以便插入的最后一个数据始终位于recyclerView中的最后一个,而不是以随机方式插入 由于orderByChild(“名称”),每当在数据库中插入新数据时,都不符合时间 使用时: .orderByChild("name&
Query
从应用程序中的Firebase实时数据库加载了一些数据
以下是简单的代码:
由于orderByChild(“name”),每当在数据库中插入新数据时,都与插入数据的时间不一致。相反,它以随机顺序将数据插入recyclerView
如何修复它,以便插入的最后一个数据始终位于recyclerView中的最后一个,而不是以随机方式插入
由于orderByChild(“名称”),每当在数据库中插入新数据时,都不符合时间
使用时:
.orderByChild("name")
这意味着来自数据库的结果将根据“name”属性中存在的值排序,而不是根据“time”排序
相反,它以随机顺序将数据插入RecyclerView
如上所述,这绝对不是随机顺序。如果您需要根据加法的“时间”得到结果,那么您有两个选项
例如,如果“M38dJdquf4jE”是由“push()”方法提供的按下键,则可以使用Query的方法,该方法:
创建一个查询,其中子节点按其键排序
您将获得有序的结果,因为按下的键包含时间组件
如果这些键不是由“push()”方法提供的,要根据时间组件获得订单,那么您应该添加一个类型为“timestamp”的属性,如我在以下帖子中的回答所述:
.orderByChild("timestamp")
使结果按升序排列。如果你需要降序,那么你可以使用我在以下帖子中的答案:
.orderByChild("name")
.orderByChild("timestamp")