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