【问题标题】:Add fixed item in FirebaseRecyclerOptions在 FirebaseRecyclerOptions 中添加固定项目
【发布时间】:2018-02-19 15:11:35
【问题描述】:

我有一个 FirebaseRecyclerOptions 对象,我在其中填充它:

final FirebaseRecyclerOptions< CardPOJO > options =
                new FirebaseRecyclerOptions.Builder< CardPOJO >()
                        .setQuery(products_ref, CardPOJO.class)
                        .build();

我想添加一个固定项目作为最后一个项目,有什么办法吗? 以下我有:

adapter = new FirebaseRecyclerAdapter< CardPOJO, CardHolder>(options) {
            @Override
            public CardHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                //inflate the single recycler view layout(item)
                ...

我想做类似的事情

options.add(new CardPOJO("BLABLA","BLABLA"));

因为无论我必须添加CardPOJO 类的对象,不是吗?

图片说明

【问题讨论】:

    标签: java android firebase firebase-realtime-database


    【解决方案1】:

    为了实现这一点,不要在setQuery() 方法中传递DatabaseReference 对象,而是传递Query 对象。

    使用该查询限制固定数量的项目:

    Query query = products_ref.orderByChild("yourChild")
        .equalsTo("desiredChild")
        .limitToLast(1);
    

    或更简单地说:

    Query query = products_ref.limitToLast(1);
    

    然后在您的适配器中使用 getItem(position) 并将该项目的值更改为所需的值。

    另一种方法是在该特定节点上附加一个侦听器,获取最后一项并根据需要进行更改。

    【讨论】:

    • 但我希望它永远是最后一个,我没有固定的卡数
    • yourChild 和 desiredChild 是什么?我猜你的孩子是“产品”,因为我有这个:products_ref = FirebaseDatabase.getInstance().getReference().child("products");
    • 但我必须将它添加到我的 firebase 数据库中?我不想那样做……
    • 我添加了yourChilddesiredChild 因为通常我们查询一个属性但删除那些方法调用。请参阅我的更新答案。
    • 如果我这样做,我拥有的所有项目都是我在数据库中的最后一个项目
    猜你喜欢
    • 2023-04-01
    • 2012-01-09
    • 2021-12-28
    • 1970-01-01
    • 2014-03-17
    • 1970-01-01
    • 1970-01-01
    • 2016-08-03
    • 2023-04-07
    相关资源
    最近更新 更多