获取Firestore中子集合内所有文档的特定值的列表

困惑的学生

我在处理子集合和将数据获取到android时遇到一些问题。

我的Firestore结构如下所示:

主要收藏

这是我遇到问题的地方:

主要集合和子集合

我想要什么:检索子集合中的所有productID字段,以便在另一个查询中使用它。我被困住了:如何真正做到这一点?我一直在跟踪所有与Firestore相关的问题,但我只是迷路了。这是我尝试做的,是的,我正在使用RecylcerView:

 private FirebaseFirestore db = FirebaseFirestore.getInstance();
    private CollectionReference panieref = db.collection("panier");
    private CollectionReference prodref = db.collection("products");
 private void setUpRecyclerView(){//for loading items from firestore
        final List<List<DocumentSnapshot>> productsList=new ArrayList<>();
        Query query =panieref.whereEqualTo("ID_del",newcom.getID_del());
        panieref.whereEqualTo("ID_del",newcom.getID_del()).get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
            @Override
            public void onComplete(@NonNull final Task<QuerySnapshot> task) {
                if(task.isSuccessful()){
                   for(final QueryDocumentSnapshot document : Objects.requireNonNull(task.getResult())) {
                     prodref.whereEqualTo("productID", Objects.requireNonNull(document.get("productID")).toString()).get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
                         @Override
                         public void onSuccess(QuerySnapshot queryDocumentSnapshots) {

                             if(task.isSuccessful()){
                                 CollectionReference ProdColRef=panieref.document((String) Objects.requireNonNull(document.get("product_ID"))).collection("produits");

                                 productsList.add(task.getResult().getDocuments());
                             }
                         }
                     });

                   } }
            }
        });
        adapter= new detailsAdapter(productsList);
        //call up the recyclerview from the itemlist layout into the main activity layout
        RecyclerView recyclerView = findViewById(R.id.items_recycler_view);
        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
        recyclerView.setAdapter(adapter);
    }

请帮助,已经过去了一个星期,我没有标记任何进展,并且放弃了很多行代码,我觉得自己没用。

弗兰克·范普菲伦

现在,您正在通过以下方式创建对产品集合的引用:

private CollectionReference prodref = db.collection("products");

这意味着Firestore会查找顶级集合名称products,据我所知,该名称在您的数据库中不存在。

如果要从特定panier文档中收集产品,则需要调用collection("products")该特定文档:

FirebaseFirestore db = FirebaseFirestore.getInstance();
CollectionReference panieref = db.collection("panier");

final List<List<DocumentSnapshot>> productsList=new ArrayList<>();
Query query =panieref.whereEqualTo("ID_del",newcom.getID_del());
panieref.whereEqualTo("ID_del",newcom.getID_del()).get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
  @Override
  public void onComplete(@NonNull final Task<QuerySnapshot> task) {

    if(task.isSuccessful()){
       for(final QueryDocumentSnapshot document : Objects.requireNonNull(task.getResult())) {
         CollectionReference prodref = document.getReference().collection("products");

         prodref.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
           @Override
           public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
             if(task.isSuccessful()){
               productsList.add(task.getResult().getDocuments());
             }
           }
         });
       } 
    }
  }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Firestore获取子集合的所有文档

来自分类Dev

如何在Cloud Firestore中高效地获取集合及其子集合的所有文档

来自分类Dev

如何从Firestore中的文档ID数组中获取所有子集合文档

来自分类Dev

公司的FireStore - 插入文档中子集合

来自分类Dev

Firestore规则:使文档在集合中和所有子集合中遵循相同的规则

来自分类Dev

是否可以在Cloud Firestore上查询Field并获取主集合字段以及具有子集合文档的子集合?

来自分类Dev

在子集合Firestore中查询文档

来自分类Dev

Firestore查询文档的子集合

来自分类Dev

Firestore / Flutter:查询文档的子集合

来自分类Dev

Firestore从哪里查询获取子集合

来自分类Dev

从列表中子集合n个元素

来自分类Dev

Mongodb:如何获取子集合列表

来自分类Dev

当应用在 kotlin/android 中被杀死时,删除集合中特定文档(例如当前用户文档)的所有子集合

来自分类Dev

如何在Firestore / Flutter中获取子集合和文档

来自分类Dev

Firestore 规则:如何根据包含子集合的文档字段允许访问子集合?

来自分类Dev

在Firebase / firestore控制台中删除集合是否会删除所有子集合?

来自分类Dev

对Firestore子集合中的文档进行通配符查询

来自分类Dev

文档会在Firestore中读取计数子集合吗?

来自分类Dev

在 Firestore 中使用 AngularFire 列出文档的子集合

来自分类Dev

Firestore 文档/子集合不存在

来自分类Dev

检索文档数据,其中条件值是子集合值

来自分类Dev

Firestore子集合ID

来自分类Dev

Firestore 子集合 '!=' 查询

来自分类Dev

如何将python列表的所有子集合并到n个容器中

来自分类Dev

如何将python列表的所有子集合并到n个容器中

来自分类Dev

Firestore 云函数汇总子集合值

来自分类Dev

如何将数据添加到 Firestore 数据库子集合中的特定文档?

来自分类Dev

Firestore集合组查询-如何订购子集合所属的父文档?

来自分类Dev

从 Firebase 的 Cloud Firestore 中删除文档会删除该文档中的任何子集合吗?

Related 相关文章

  1. 1

    Firestore获取子集合的所有文档

  2. 2

    如何在Cloud Firestore中高效地获取集合及其子集合的所有文档

  3. 3

    如何从Firestore中的文档ID数组中获取所有子集合文档

  4. 4

    公司的FireStore - 插入文档中子集合

  5. 5

    Firestore规则:使文档在集合中和所有子集合中遵循相同的规则

  6. 6

    是否可以在Cloud Firestore上查询Field并获取主集合字段以及具有子集合文档的子集合?

  7. 7

    在子集合Firestore中查询文档

  8. 8

    Firestore查询文档的子集合

  9. 9

    Firestore / Flutter:查询文档的子集合

  10. 10

    Firestore从哪里查询获取子集合

  11. 11

    从列表中子集合n个元素

  12. 12

    Mongodb:如何获取子集合列表

  13. 13

    当应用在 kotlin/android 中被杀死时,删除集合中特定文档(例如当前用户文档)的所有子集合

  14. 14

    如何在Firestore / Flutter中获取子集合和文档

  15. 15

    Firestore 规则:如何根据包含子集合的文档字段允许访问子集合?

  16. 16

    在Firebase / firestore控制台中删除集合是否会删除所有子集合?

  17. 17

    对Firestore子集合中的文档进行通配符查询

  18. 18

    文档会在Firestore中读取计数子集合吗?

  19. 19

    在 Firestore 中使用 AngularFire 列出文档的子集合

  20. 20

    Firestore 文档/子集合不存在

  21. 21

    检索文档数据,其中条件值是子集合值

  22. 22

    Firestore子集合ID

  23. 23

    Firestore 子集合 '!=' 查询

  24. 24

    如何将python列表的所有子集合并到n个容器中

  25. 25

    如何将python列表的所有子集合并到n个容器中

  26. 26

    Firestore 云函数汇总子集合值

  27. 27

    如何将数据添加到 Firestore 数据库子集合中的特定文档?

  28. 28

    Firestore集合组查询-如何订购子集合所属的父文档?

  29. 29

    从 Firebase 的 Cloud Firestore 中删除文档会删除该文档中的任何子集合吗?

热门标签

归档