如何从firebase数据库检索模型对象列表

6ojccjat  于 2021-06-29  发布在  Java
关注(0)|答案(2)|浏览(275)


模型类

public String id;
    public String total;
    public List<CartModel> orderList;
    public String currentDate;
    public String orderBy;

我想去拿这些东西,但不幸的是我做不到。我在适配器类中按以下方式访问此列表,但得到的是空值。

protected void onBindViewHolder(@NonNull final OrderHolder holder, int position, @NonNull Orders model) {

        List<CartModel> list = new ArrayList<>();
        list = model.getOrderList();
        Log.i("Orders", list+"");

        holder.dateTime.setText(model.getCurrentDate());
        holder.grandTotal.setText("Total "+model.getTotal());
        holder.orderBy.setText(model.getOrderBy());

    }

请为我提供一个有效的解决方案

3qpi33ja

3qpi33ja1#

String userid="your unique id";
String orderid="your unique id";
DatabaseReference database=FirebaseDatabase.getInstance().getReference()
databse.child("yourroot")
       .child("Users")
       .child(userid)
       .child("Orders")
       .child(orderid)
       .child("orderItems")
       .addValueEventListener(new ValueEventListener {
            @Override 
            void onCancelled(@NonNull DatabaseError error) {
                //handle error as per your requirement
            }

            @Override 
            void onDataChange(@NonNull DataSnapshot snapshot) {
                YourModel model=snapshot.getValue(YourModel.class)
                //use the model or add to adapter payload and notify it on mainthread
            }
        })

注意:您可能会 DatabaseException 如果您的模型类不是保存db中的值的合适类。

wz1wpwve

wz1wpwve2#

java代码中字段的名称与json中的属性名称不匹配。
要使它们匹配,请更改:

public List<CartModel> orderList;

收件人:

public List<CartModel> orderItems;

相关问题