扑。创建 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 集合中的文档进行排序?