我正在制作一个购物应用程序,我想添加一个“订单”选项卡,用户可以在其中查看自己目前待处理的订单。我已经在管理面板中创建了“订单”选项卡,管理员可以在其中查看所有用户订单。我也对当前用户的订单列表活动使用了相同的代码块。但它显示了每个用户的所有订单。我不知道如何解决这个问题。我有一个模型类来获取当前在线用户。我也尝试过,但没有成功。这是我尝试过的...protected void onStart(){ super.onStart(); final DatabaseReference ordersRef = FirebaseDatabase.getInstance().getReference().child("Orders"); FirebaseRecyclerOptions<AdminOrders> options = new FirebaseRecyclerOptions.Builder<AdminOrders>() .setQuery(ordersRef .child(Prevelant.currentOnlineUser.getUsername()) , AdminOrders.class) .build(); FirebaseRecyclerAdapter<AdminOrders, AdminOrdersViewHolder> adapter = new FirebaseRecyclerAdapter<AdminOrders, AdminOrdersViewHolder>(options) { @Override protected void onBindViewHolder(@NonNull final AdminOrdersViewHolder holder, final int position, final @NonNull AdminOrders model) { holder.userName.setText("Name : "+ model.getName()); holder.userPhoneNumber.setText("Phone Number : "+ model.getPhone()); holder.userTotalPrice.setText("Total : Rs."+ model.getTotalAmount()); holder.userDateTime.setText("Order Time : "+ model.getDate() + model.getTime()); holder.userShippingAddress.setText("Address : "+ model.getAddress() + "," + model.getCity()); holder.showOrdersBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String uID = getRef(position).getKey(); Intent intent = new Intent(UserViewOrdersActivity.this, AdminUserProductsActivity.class); intent.putExtra("uid", uID); startActivity(intent); } });
1 回答
慕虎7371278
TA贡献1802条经验 获得超4个赞
改变这个:
.setQuery(ordersRef
.child(Prevelant.currentOnlineUser.getUsername()), AdminOrders.class)
进入这个:
.setQuery(ordersRef, AdminOrders.class)
当您添加时child(Prevelant.currentOnlineUser.getUsername()),您将检索属性为String。所以你需要将json映射到模型类。例子:
{
"name":"John",
"age":30,
"cars": {
"car1":"Ford",
"car2":"BMW",
"car3":"Fiat"
}
}
这cars是一个包含属性car1、car2和 的对象car3。在你的例子中admin是对象,它的内部有属性。
添加回答
举报
0/150
提交
取消