为了账号安全,请及时绑定邮箱和手机立即绑定

com.google.firebase.database.DatabaseException:

com.google.firebase.database.DatabaseException:

侃侃无极 2023-08-23 16:50:14
我正在制作一个购物应用程序,我想添加一个“订单”选项卡,用户可以在其中查看自己目前待处理的订单。我已经在管理面板中创建了“订单”选项卡,管理员可以在其中查看所有用户订单。我也对当前用户的订单列表活动使用了相同的代码块。但它显示了每个用户的所有订单。我不知道如何解决这个问题。我有一个模型类来获取当前在线用户。我也尝试过,但没有成功。这是我尝试过的...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是对象,它的内部有属性。


查看完整回答
反对 回复 2023-08-23
  • 1 回答
  • 0 关注
  • 104 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信