Android 如何根据时间(顺序)保存或检索数据

Android 如何根据时间(顺序)保存或检索数据,android,firebase,Android,Firebase,如果我保存了两个用户的数据,现在我想检索用户,那么它必须按照最新数据或最上面的用户的顺序进行 我试着去探索,但没有找到它的概念 因为数据是从数据库中检索的 public void onDataChange(@NonNull DataSnapshot dataSnapshot) { if (dataSnapshot.exists()) { for (DataSnapshot userSnapshot : dataSnapsho

如果我保存了两个用户的数据,现在我想检索用户,那么它必须按照最新数据或最上面的用户的顺序进行 我试着去探索,但没有找到它的概念 因为数据是从数据库中检索的

public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if (dataSnapshot.exists()) {
                    for (DataSnapshot userSnapshot : dataSnapshot.getChildren()) {

                        Users users = userSnapshot.getValue(Users.class);
                        usersList.add(users);

                    }
                    mAdapter = new Adapter_All_Users(usersList);
                    mRecyclerView.addItemDecoration(new DividerItemDecoration(getContext(),LinearLayoutManager.VERTICAL));
                    mRecyclerView.setAdapter(mAdapter);


                }

            }  ```
it just set data in recycleview as random


您应该有一个日期字段,以便能够获得如下数据:

ref.orderByChild("date")
注意:它总是以升序出现

更多信息:

使用
Collections.sort(usersList)将其添加到适配器之前

类中(列表类型的)重写
compareTo()
方法
返回obj.getDate().compareTo(this.getDate())(或相反,我不记得了)。

编译器将知道如何比较这些日期,即使它是字符串格式(不是日期),您只需告诉它在排序时应比较哪个字段

您还可以使用
ref.orderByKey().AddValueEvent
,因为您已经生成了唯一的键。此键用作数据的时间戳

请在firebase中显示您的数据库结构以及如何插入数据,您在保存数据时是否使用了
push()
?@Cyrilleconmorals此处您可以使用
ref.orderByKey()
在检索到fiirebase集合后在客户端对其进行排序,如果集合很大,则需要花费大量时间;如果集合使用分页,则需要多次调用sort