我正在制作一個購物應用程序,我想添加一個“訂單”選項卡,用戶可以在其中查看自己目前待處理的訂單。我已經在管理面板中創建了“訂單”選項卡,管理員可以在其中查看所有用戶訂單。我也對當前用戶的訂單列表活動使用了相同的代碼塊。但它顯示了每個用戶的所有訂單。我不知道如何解決這個問題。我有一個模型類來獲取當前在線用戶。我也嘗試過,但沒有成功。這是我嘗試過的...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
提交
取消