如何在firebaserecyclerAdapter中对我的产品(项目)进行排序

时间:2020-09-19 19:20:20

标签: android firebase firebase-realtime-database firebaseui

我正在尝试使用不同的过滤器对数据(产品)进行排序,例如按字母顺序,按价格排序,按日期排序。

数据是从Firebase实时数据库的“节点”中获取的: The data is fetched from firebase Realtime Database In Node (Image is attached)

我已经使用过 orderByChild 方法,但是问题是它过滤数据而不是排序数据。

    //recycelrView Setup for Product Listing
        gridLayoutManager_categ = new GridLayoutManager(this, 2);
        rv_categ.setLayoutManager(gridLayoutManager_categ);
        rv_categ.setHasFixedSize(true);

//FirebaseRecyclerAdapter for fetching data from firebase and showing it into recylerview

    databaseReference = FirebaseDatabase.getInstance().getReference().child("Products").child(rootText);
        categ_options = new FirebaseRecyclerOptions.Builder<Products>().setQuery(databaseReference, Products.class).build();
        categ_Adapter = new FirebaseRecyclerAdapter<Products, MyViewHolder_categAdapter>(categ_options) {
            @Override
            protected void onBindViewHolder(@NonNull final MyViewHolder_categAdapter Holder, int i, @NonNull final Products products) {
                

            }

            @NonNull
            @Override
            public MyViewHolder_categAdapter onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.product_layout,parent,false);
                return new MyViewHolder_categAdapter(view);
            }
        };
        categ_Adapter.startListening();
        rv_categ.setAdapter(categ_Adapter);

   }

如果在这种情况下是不可能的,那么请建议我使用其他任何方法来展示我的产品。 (例如使用其他任何数据库或方法等)

1 个答案:

答案 0 :(得分:0)

如果databaseReference指向屏幕快照中的Ghee节点,您将获得一个查询,该查询使用以下命令对子节点的productPrice值进行排序:

Query query = databaReference.orderByChild("productPrice");

然后您可以将查询传递给适配器选项:

categ_options = new FirebaseRecyclerOptions.Builder<Products>().setQuery(query, Products.class).build();