扑。创建 Firestore 文档和集合的 List<String>

Posted

技术标签:

【中文标题】扑。创建 Firestore 文档和集合的 List<String>【英文标题】:Flutter. Create a List<String> of the firestore documents and collections 【发布时间】:2020-12-17 13:01:29 【问题描述】:

我正在尝试从 Firestore 获取文档列表 (documentID) 并将其添加到列表中。我已经看到了一些选择,但由于我在这个领域有点新,也许显而易见的事情对我来说变得困难了。而且我不知道这些行应该在代码中的确切位置,例如在 initState 中。

这是我选择的选项之一,但它只生成实例而不是文档的名称。

final QuerySnapshot result =
      await Firestore.instance.collection('submits').getDocuments();
final List<DocumentSnapshot> documents = result.documents;

List<String> myListString = []; // My list I want to create.
myListString.add(documents);    // The way I try to add the doc list to my String list.

数据库示例。我想将文档 ID 列表获取到 List-String-

enter image description here

如果可能的话,您可以告诉我是否有类似的方法可以应用它来获取列表,但在两个或更多集合的情况下。

【问题讨论】:

您必须编写代码来迭代documents 列表并根据您在这些文档中的任何内容生成最终列表。由于我们看不到这些文档中的内容或知道您要收集的字符串类型,因此我们无法提供太多帮助。如果您仍然遇到问题,我建议您编辑问题,以便更清楚地了解您期望的结果以及此查询中的文档内容。 感谢您的评论,我已将我的问题更新为更具体。 【参考方案1】:

看来您想要的是文档 ID 列表,对吧?

如果是这样,这应该可以:

final QuerySnapshot result =
      await Firestore.instance.collection('submits').getDocuments();
final List<DocumentSnapshot> documents = result.documents;

List<String> myListString = []; // My list I want to create.

documents.forEach((snapshot) 
   myListString.add(snapshot.documentID)
);

【讨论】:

没错,我想创建一个文档的ID列表。我会尝试提出的解决方案,非常感谢。 没有问题,告诉我进展如何!如果有效,请考虑将其标记为正确答案 没错,我刚刚尝试了您的解决方案,它对我有用。还有一个问题,有没有办法自动执行代码,现在我通过一个按钮执行它。但我希望当我访问将使用文档列表的屏幕时,它们会自动出现,我应该使用 InitState 吗? 有效地将函数放入 InitState 并且它运行良好。谢谢!!!

以上是关于扑。创建 Firestore 文档和集合的 List<String>的主要内容,如果未能解决你的问题,请参考以下文章

由子文档或集合完成创建时未触发firestore OnCreate

如何按创建日期而不是名称对 Cloud Firestore 集合中的文档进行排序?

Cloud Firestore 不仅适用于 iOS |扑

Firestore,检测添加到集合中的新文档等

如何从 Firestore 集合中获取所有文档并将它们返回到数组列表中? [复制]

再次删除带有文档和集合的集合(firestore react native)