com.google.firebase.database.DatabaseException:

我正在制作一个购物应用程序,我想添加一个“订单”选项卡,用户可以在其中查看自己目前待处理的订单。我已经在管理面板中创建了“订单”选项卡,管理员可以在其中查看所有用户订单。我也对当前用户的订单列表活动使用了相同的代码块。但它显示了每个用户的所有订单。我不知道如何解决这个问题。我有一个模型类来获取当前在线用户。我也尝试过,但没有成功。


这是我尝试过的...


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);

                        }

                    });


侃侃无极
浏览 157回答 1
1回答

慕虎7371278

改变这个:.setQuery(ordersRef.child(Prevelant.currentOnlineUser.getUsername()), AdminOrders.class)进入这个:.setQuery(ordersRef, AdminOrders.class)当您添加时child(Prevelant.currentOnlineUser.getUsername()),您将检索属性为String。所以你需要将json映射到模型类。例子:&nbsp;{&nbsp; "name":"John",&nbsp; "age":30,&nbsp; "cars": {&nbsp; &nbsp; "car1":"Ford",&nbsp; &nbsp; "car2":"BMW",&nbsp; &nbsp; "car3":"Fiat"&nbsp; }&nbsp;}这cars是一个包含属性car1、car2和 的对象car3。在你的例子中admin是对象,它的内部有属性。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java