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

Posted

技术标签:

【中文标题】如何在 firebaserecyclerAdapter 中对我的产品(项目)进行排序【英文标题】:How can I Sort my Products(items) in firebaserecyclerAdapter 【发布时间】:2021-01-06 09:16:26 【问题描述】:

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

数据是从 Node 中的 firebase 实时数据库中获取的:

我已经用过 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】:

如果databaseReference 指向屏幕截图中的Ghee 节点,您可以获得一个查询,该查询根据productPrice 的值对子节点进行排序:

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

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

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

【讨论】:

您好,弗兰克,感谢您的考虑。实际上,我已经在使用您建议的解决方案。我想订购按字母顺序排列的 A-Z 或 Z-A 的产品。 您共享的代码尚未订购任何东西。请确保您的问题包含您要询问的代码。 嗨弗兰克,很抱歉回复晚了。实际上我没有订购产品的代码。我想知道一种订购物品的方法。谢谢

以上是关于如何在 firebaserecyclerAdapter 中对我的产品(项目)进行排序的主要内容,如果未能解决你的问题,请参考以下文章

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

如何从 FirebaseRecyclerAdapter 中排除项目

FireBaseRecyclerAdapter单击项目并显示数据时如何打开Fragment?

firebaserecycleradapter() 不能应用于 FirebaseRecyclerAdapter

在 FirebaseRecyclerAdapter 上应用过滤器

我在 FirebaseRecyclerAdapter 类中找不到 populateViewHolder 方法