【发布时间】:2023-03-25 15:17:01
【问题描述】:
我正在尝试从购物车中的该 USER ID 获取所有这些数据。但是我的RecyclerView 什么也没显示。检查后,adapter.getItemCount() 返回 0。我哪里错了?这是我的代码:
onStart()
private void loadData(){
auth = FirebaseAuth.getInstance().getCurrentUser();
userID = auth.getUid();
final DatabaseReference cartList = FirebaseDatabase.getInstance().getReference().child("Cart");
FirebaseRecyclerOptions<Cart> options =
new FirebaseRecyclerOptions.Builder<Cart>()
.setQuery(cartList.child(userID),Cart.class).build();
FirebaseRecyclerAdapter<Cart,CartHolder> adapter
= new FirebaseRecyclerAdapter<Cart, CartHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull CartHolder holder, int position, @NonNull Cart model) {
holder.txtGia.setText(model.getTotal());
}
@NonNull
@Override
public CartHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.cart_item,parent,false);
CartHolder holder = new CartHolder(view);
return holder;
}
};
recyclerView.setAdapter(adapter);
adapter.startListening();
}
型号
public class Cart {
public String pID,num,time,addr,total,userID;
public Cart(){}
public Cart(String num,String pID,String time,String addr,String total,String userID) {
this.num = num;
this.pID = pID;
this.time = time;
this.addr = addr;
this.total = total;
this.userID = userID;
}
public String getNum() {
return num;
}
public String getpID() {
return pID;
}
public String getTime() {
return time;
}
public String getAddr() {
return addr;
}
public String getTotal() {
return total;
}
public String getUserID() {
return userID;
}
}
和ViewHolder
public class CartHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public ImageView shibaImg;
public TextView txtTen,txtMota,txtGia,txtThoigian;
ItemClickListener listener;
public CartHolder(@NonNull View itemView) {
super(itemView);
shibaImg = (ImageView) itemView.findViewById(R.id.cart_item_img);
txtTen = (TextView) itemView.findViewById(R.id.cart_item_ten);
txtMota = (TextView) itemView.findViewById(R.id.cart_item_mota);
txtGia = (TextView) itemView.findViewById(R.id.cart_item_gia);
txtThoigian = (TextView) itemView.findViewById(R.id.cart_item_history);
}
public void setItemClickListener(ItemClickListener listener){
this.listener = listener;
}
@Override
public void onClick(View v) {
listener.onClick(v, getAdapterPosition(),false);
}
}
【问题讨论】:
-
我的查询错了吗?
-
嘿,你启用了proguard规则吗?
-
是的,我做到了!太奇怪了,我将它用于 Firebase 中的另一个表,它可以工作,但不适用于这个。
-
嘿,你有没有在你的 proguard 规则中添加这个:
-keep class your.app.package.model.**{*;} -
我有,但仍然没有工作。
标签: java android firebase-realtime-database firebaseui