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

Posted

技术标签:

【中文标题】我们可以在不重新设置整个适配器的情况下更新 Firestore 回收器适配器的查询吗?【英文标题】:can we update query of firestore recycler adapter without setting the whole adapter again? 【发布时间】:2018-06-09 09:34:44 【问题描述】:

我正在使用 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);

【问题讨论】:

【参考方案1】:

您无法更新查询,您正在使用这个:

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

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

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

但是如果你的意思是更新数据..那么在另一个活动之前更新数据也许然后在这个活动中你会得到更新的数据

【讨论】:

【参考方案2】:

这是刷新 Firestore 回收器适配器的解决方法。 在更改查询之前执行此操作。

adapter.stopListening();

现在根据您的要求更改您的查询 并设置您的适配器。现在设置适配器重新开始监听。

adapter.startListening();

【讨论】:

以上是关于我们可以在不重新设置整个适配器的情况下更新 Firestore 回收器适配器的查询吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不重新加载整个页面的情况下刷新 div?

Ajax是什么?

SSAS - 是不是可以在不重新部署整个多维数据集的情况下将属性添加到现有维度

在不重新编译整个应用程序的情况下升级依赖 DLL

如何在不重新部署整个堆栈的情况下部署单个 Step Function?

对Ajax的解析