Java FireBase回收器适配器无法从FireBase检索数据
我的数据库看起来像这样 我正在尝试从购物车中的用户ID获取所有这些数据。但我的回收视图没有显示任何内容。检查后,adapter.getItemCount返回0。我哪里做错了?这是我的代码: 启动 和视窗座Java FireBase回收器适配器无法从FireBase检索数据,java,android,firebase-realtime-database,firebaseui,Java,Android,Firebase Realtime Database,Firebaseui,我的数据库看起来像这样 我正在尝试从购物车中的用户ID获取所有这些数据。但我的回收视图没有显示任何内容。检查后,adapter.getItemCount返回0。我哪里做错了?这是我的代码: 启动 和视窗座 此代码似乎是问题所在: cartList.orderByChild("userID").equalTo(userID) 这段代码直接获取cartList下的每个子节点,并根据它们的userID属性对它们进行排序。但是您的屏幕截图中没有userID属性,因此这将导致一个空
此代码似乎是问题所在:
cartList.orderByChild("userID").equalTo(userID)
这段代码直接获取cartList下的每个子节点,并根据它们的userID属性对它们进行排序。但是您的屏幕截图中没有userID属性,因此这将导致一个空列表
我的最佳猜测是cartList下每个节点的键都是用户ID,在这种情况下,您可以使用:
cartList.child(userID)
因此:
我终于明白了。
出于某些原因,我的CartActivity上的RecyclerView需要时间加载数据,可能是因为我在HomeActivity上有3个RecyclerView,有时显示数据,有时不显示,通常是1或2/3的RecyclerView显示数据。当我重新加载并按“上一步”再次启动“活动”时,将显示RecyclerView并显示数据。我的查询是否错误?嘿,是否启用了proguard规则?是的,我启用了!奇怪的是,我在Firebase的另一个表中使用了它,但它对这个表有效,但对这个表无效。嘿,你在proguard规则中添加了它吗:-保留你的类。app.package.model.*{*;}我有过,但仍然不起作用。我尝试了,但我的RecyclerView仍然没有任何功能,适配器大小是0,先生。这是出乎意料的。您可以编辑您的问题以显示更新的代码吗?我试图将userID添加到表和orderByChilduserID中,但忘记了更新。对不起,先生,我不知道那是什么意思。但我很确定,我在回答中指出的问题至少是代码无法工作的一个原因。¯\_ツ_/''如果我的答案有用,请单击向上投票按钮▲ 在它的左边。如果它回答了您的问题,请单击复选标记✓ 接受它。这样别人就知道你得到了足够的帮助。也看到
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);
}
}
cartList.orderByChild("userID").equalTo(userID)
cartList.child(userID)
final DatabaseReference cartList = FirebaseDatabase.getInstance().getReference().child("Cart");
FirebaseRecyclerOptions<Cart> options =
new FirebaseRecyclerOptions.Builder<Cart>()
.setQuery(cartList.child(userID),Cart.class).build();