我如何在颤振中获得 Firestore 集合和子集合

Posted

技术标签:

【中文标题】我如何在颤振中获得 Firestore 集合和子集合【英文标题】:how can i get firestore collection and subcollection in flutter 【发布时间】:2020-12-25 04:57:58 【问题描述】:

感谢您阅读我的问题。 在我问你问题之前,我的英语可能还不够好。

这是我的 Firestore 结构

我正在使用颤振,我必须从 FireStore 中将产品集合和子集合图像放在一起。

我成功获取数据,但我不知道如何将其用作流构建器。

FirebaseFirestore.instance
                  .collection("products")
                  .get()
                  .then((value) async => 
                        for (DocumentSnapshot document in value.docs)
                          
                            log(document.data().toString()),
                            await document.reference
                                .collection("images")
                                .get()
                                .then((value) => 
                                      for (DocumentSnapshot document
                                          in value.docs)
                                        
                                          log(document.data().toString()),
                                        
                                    ),
                          
                      );

代码运行日志结果

我找了三天,但找不到答案。 请回复。

祝你有美好的一天。谢谢。

【问题讨论】:

您可以在同一个集合中使用一组图像,而不是使用子集合。当应用程序扩展时,它将降低成本。 我发现这样做的唯一方法是使用 2 个不同的流构建器,以不同的方式命名每个快照。将一个用于产品集合,然后将图像用于另一个。我建议在您的产品文档中添加一个“图像”字段,并使其成为字符串类型的数组。这将允许您直接从每个产品文档中引用图像。阿蒙,你比我快 2 分钟。 哇,感谢 Amon 和 Scott 的精彩回答。 @ScottGodfrey 考虑用你的评论信息写一个答案,因为其他人可以从这些信息中受益。 【参考方案1】:

我发现这样做的唯一方法是使用 2 个不同的流构建器,以不同的方式命名每个快照。将一个用于产品集合,然后将图像用于另一个。我建议在您的产品文档中添加一个“图像”字段,并使其成为字符串类型的数组。这将允许您直接引用每个产品文档中的图像

【讨论】:

以上是关于我如何在颤振中获得 Firestore 集合和子集合的主要内容,如果未能解决你的问题,请参考以下文章

如何读取地图中的 Firestore 值?

如何将集合和子集合一起从 firestore 导出到 excel 或 bigquery 表?

FireStore 文档如何在子集合中读取计算

如何从 Firestore 中删除集合或子集合?

如何使用 Flutter 获取 Firestore 中每个集合的子集合

Firestore中的子集合在基本文档上可见吗?