代码之家  ›  专栏  ›  技术社区  ›  uzaysan

Firebase数据库costum push方法还是反向数据树?

  •  -1
  • uzaysan  · 技术社区  · 7 年前

    我在用 push()

    例如,在这张图片底部的一个是最新的一个,我希望它是在上面。我该怎么做?

    Picture

    我想要这个因为我用 RecyclerView 使用Firebase适配器和适配器从顶部开始读取。

    编辑: how to get data from bottom to top from firebase?

    2 回复  |  直到 7 年前
        1
  •  0
  •   Alex Mamo    7 年前

    我使用push()方法为数据库创建唯一的id,但当我使用push方法创建id时,它会添加到树的底部,但我希望它位于顶部

    push() 方法中的对象 是按时间顺序排列的,不幸的是你对此无能为力。此顺序不能更改。如果要在 RecyclerView 假设你可以改变控制台的顺序,这并不意味着这个顺序和控制台的顺序是一样的 回收视图 . 要按特定顺序显示项目,我建议您使用查询并根据timestamp属性对它们进行排序。关于这个,请看弗兰克·范·帕夫伦的回答 post 如果你用的是 Firebase-UI 图书馆,请看我的答案 post .

        2
  •  0
  •   Falah H. Abbas    7 年前

    您可以编写一个简单的查询来获取所需的数据

     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) {
    
        }
    });