繁体   English   中英

在 firestore 的集合中获取特定值时,订单不会出现

[英]The order wont appear when getting a specific value in a collection in firestore

我正在开发电子商务应用程序的项目,我正在尝试显示用户在 recyclerview 中添加的订单列表

我遇到的问题是用户的所有详细信息都出现了,除了用户添加的订单没有出现,并且在我运行应用程序时没有出现错误

已订购的用户详细信息和项目的集合

在此处输入图像描述

在此处输入图像描述

我使用的代码

   private void orderList() {
        final List<List<DocumentSnapshot>> productOrder = new ArrayList<>();

        FirebaseFirestore db = FirebaseFirestore.getInstance();
        CollectionReference userCartOrder = db.collection("UserOrder").document().collection("cartID");
        CollectionReference userCartID = db.collection("ItemOrder");

        Query query = userCartID.whereEqualTo("cartID",userCartOrder);

        query.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
            @Override
            public void onComplete(@NonNull Task<QuerySnapshot> task) {
                if (task.isSuccessful()){
                    for (QueryDocumentSnapshot documentSnapshot: task.getResult()){
                        CollectionReference cartOrderID = documentSnapshot.getReference().collection("itemList");

                        cartOrderID.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                            @Override
                            public void onComplete(@NonNull Task<QuerySnapshot> task) {
                                if (task.isSuccessful()){
                                    productOrder.add(task.getResult().getDocuments());
                                    

                                }
                            }
                        });
                    }

                }
                else {
                    Toast.makeText(AdminOrderActivity.this, "Query failed", Toast.LENGTH_SHORT).show();
                }
            }
        });




    }

问题就像那里:

CollectionReference userCartOrder = db.collection("UserOrder").document().collection("cartID");

当您调用不带任何参数的document()时,它会生成对新的、唯一的、不存在的文档的引用。 将其传递给查询,将不会返回任何订单,因为文档不存在。

如果要查询特定ItemOrdercartID ,则需要将该购物车 ID 传递给查询。 例如:

Query query = userCartID.whereEqualTo("cartID", "220225073844244");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM