我们可以在不再次设置整个适配器的情况下更新Firestore回收器适配器的查询吗?



我正在使用Firestore回收器适配器在以下的回收器视图中填充我的文档。正常工作。如何更新查询?

    query = FirebaseFirestore.getInstance()
            .collection("partners").orderBy("mCompanyName").limit(limitValue);
    options = new FirestoreRecyclerOptions.Builder<PartnerInfoPojo>()
            .setQuery(query, PartnerInfoPojo.class).build();
    adapter = new FirestoreRecyclerAdapter<PartnerInfoPojo, PartnersViewHolder>(options) {
        @Override
        public void onBindViewHolder(final PartnersViewHolder holder, int position, final PartnerInfoPojo model) {
            Logger.v("onBindViewHolder ....." + position);
        }
        @Override
        public PartnersViewHolder onCreateViewHolder(ViewGroup group, int i) {
            View view = LayoutInflater.from(group.getContext())
                    .inflate(R.layout.single_partner_row1, group, false);
            return new PartnersViewHolder(view);
        }
        @Override
        public void onDataChanged() {
            super.onDataChanged();
            Logger.v("on Data changed");
        }
    };
    mPartnerList.setAdapter(adapter);

您无法更新查询,您正在使用此问题:

  query = FirebaseFirestore.getInstance()
        .collection("partners").orderBy("mCompanyName").limit(limitValue);

然后使用setQuery中的变量query,更新查询的唯一方法是更改IT示例:

query = FirebaseFirestore.getInstance()
        .collection("partners").orderBy("mCompanyName").equalTo(name);

但是,如果您的意思是更新数据。然后,只需在另一个活动中更新数据,然后在此活动中,您将获得更新的数据

这是刷新Firestore回收器适配器的工作。在更改查询之前,请执行此操作。

adapter.stopListening();

现在根据您的要求更改查询并设置您的适配器。现在将适配器设置为重新聆听。

adapter.startListening();

相关内容

  • 没有找到相关文章

最新更新