我使用push()方法为数据库创建唯一的id,但是当我使用push方法创建id时,它被添加到树的底部,但我希望它位于顶部。我怎么能这么做?
例如,在这张图片的底部,一个是最新的,我希望它在顶部。我怎么能这么做?
我希望这样做,因为我将RecyclerView与Firebase适配器一起使用,适配器开始从顶部读取。
这个问题是我想要的,但没有有用的答案。
发布于 2018-10-09 09:23:39
我使用push()方法为数据库创建唯一的id,但是当我使用push方法创建id时,它被添加到树的底部,但我希望它位于顶部
当您使用push()方法时,Firebase控制台中的对象是按时间顺序排列的,不幸的是您无能为力。这个顺序不能改变。如果您想在RecyclerView中显示数据库中的项目,并且假设情况下,您可以更改控制台中的顺序,这并不意味着此顺序与RecyclerView中的顺序相同。若要按特定顺序显示项目,我建议您使用查询并根据时间戳属性对其进行排序。关于这一点,请参阅Frank从这个帖子中得到的答案,如果您正在使用Firebase-UI库,请参阅此帖子的答复。
发布于 2018-10-08 22:45:37
您可以编写一个简单的查询来获取数据,根据需要将日期参数添加到对象中,然后按日期查询数据。
DatabaseReference reference = FirebaseDatabase.getInstance().getReference();
Query query = reference.child("data").orderByChild("date");
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
for (DataSnapshot child: dataSnapshot.getChildren()) {
// fill recyclarView with data
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});https://stackoverflow.com/questions/52709347
复制相似问题