筛选结果在FirebaseRecyclerAdapter中 [英] Filter results in FirebaseRecyclerAdapter
问题描述
我是Android新手,刚刚开始了解一些概念,比如 RecyclerView
。我正在使用Firebase作为数据库,所以我为此实施了Firebase解决方案。
我的适配器:
FirebaseRecyclerAdapter< Offer,OfferViewHolder> adapter = new FirebaseRecyclerAdapter< Offer,OfferViewHolder>(
Offer.class,
R.layout.card_item,
OfferViewHolder.class,
mDatabaseReference.child(offer)。getRef ()
){
@Override
protected void populateViewHolder(OfferViewHolder viewHolder,Offer model,int position){
if(tvNoMovies.getVisibility()== View.VISIBLE){
tvNoMovies.setVisibility(View.GONE);
}
viewHolder.tvHeading.setText(model.getHeader());
viewHolder.tvStoreName.setText(model.getStoreName());
}
};
现在我有两个问题:
- 是否可以过滤适配器内部的结果,还是必须使用
ChildEventListeners
引用包含数组或对象本身的键时如何检索子值?
FirebaseRecyclerAdapter
与 DatabaseReference
或者 Query
。顾名思义,后者允许您在数据库中的特定位置获取子集的一部分。 例如,如果您只想显示一个特定的商店:
$ p $ DatabaseReference offers = mDatabaseReference.child(offer)。getRef();
查询storeOffers = offers.orderByChild(storeName)。equalTo(A。lazzi's store);
FirebaseRecyclerAdapter< Offer,OfferViewHolder> (
Offer.class,
R.layout.card_item,
OfferViewHolder.class,
storeOffers
){
I am new to Android and just started to understand some concepts like the RecyclerView
. I am using Firebase as a database so I implemented the Firebase solution for that.
My Adapter:
FirebaseRecyclerAdapter<Offer,OfferViewHolder> adapter = new FirebaseRecyclerAdapter<Offer, OfferViewHolder>(
Offer.class,
R.layout.card_item,
OfferViewHolder.class,
mDatabaseReference.child("offer").getRef()
) {
@Override
protected void populateViewHolder(OfferViewHolder viewHolder, Offer model, int position) {
if(tvNoMovies.getVisibility()== View.VISIBLE){
tvNoMovies.setVisibility(View.GONE);
}
viewHolder.tvHeading.setText(model.getHeader());
viewHolder.tvStoreName.setText(model.getStoreName());
}
};
Now I have two questions:
- Is it possible to filter results inside the adapter or do i have to use
ChildEventListeners
for that? - When referencing to a key that contains an Array or an object itself how to retrieve child values?
You can initialize the FirebaseRecyclerAdapter
with either a DatabaseReference
or a Query
. As its name implies, the latter allows you to get a subset of the children at a specific location in the database.
For example say if you want to only show offers from a specific store:
DatabaseReference offers = mDatabaseReference.child("offer").getRef();
Query storeOffers = offers.orderByChild("storeName").equalTo("A. lazzi's store");
FirebaseRecyclerAdapter<Offer,OfferViewHolder> adapter = new FirebaseRecyclerAdapter<Offer, OfferViewHolder>(
Offer.class,
R.layout.card_item,
OfferViewHolder.class,
storeOffers
) {
这篇关于筛选结果在FirebaseRecyclerAdapter中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!