我是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
。顾名思义,后者使您可以在数据库中的特定位置获取子项的子集。
举例来说,假设您只想显示特定商店的优惠:
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
) {