首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Flutter -无法检索Firebase集合中的文档列表

Flutter -无法检索Firebase集合中的文档列表
EN

Stack Overflow用户
提问于 2019-09-03 11:40:49
回答 2查看 749关注 0票数 2

我正在尝试获取一个Firebase集合中所有文档名称的列表,以便在一个DropdownButton中显示,为此我创建了一个自定义小部件_DropdownListWithLabel。我的集合中有两个文档(我可以在Firebase控制台中看到这两个文档),但是当我尝试以字符串列表的形式检索所有文档的名称时,只显示了一个。下面是执行此操作的代码片段:

代码语言:javascript
复制
StreamBuilder<QuerySnapshot>(
    stream: Firestore.instance
        .collection('collectionName')
        .snapshots(),
    builder: (context, snapshot) {
        print(
            "Number of documents: ${snapshot.data.documents.length}, 
            ${snapshot.data.documents.first.documentID}");
        return _DropdownWithLabel(
            'Label', 
             snapshot.data.documents.map((doc) => doc.documentID).toList());
    }) //StreamBuilder

作为参考,print语句显示如下:Number of documents: 1, documentName

为什么这段代码不能从这个集合中检索两个文档名称?

编辑:这是_DropdownWithLabel小部件。如果我尝试在包含文本小部件列表的ListView或列中列出文档名,结果与只显示一个文档名的结果相同。

代码语言:javascript
复制
class _DropdownWithLabel extends StatefulWidget {
  final String label;
  final List<String> dropdownItems;
  _DropdownWithLabel(this.label, this.dropdownItems);
  @override
  State<StatefulWidget> createState() =>
      _DropdownWithLabelState(label, dropdownItems);
}

class _DropdownWithLabelState extends State {
  final String label;
  final List<String> dropdownItems;
  String selectedItem;
  _DropdownWithLabelState(this.label, this.dropdownItems) {
    selectedItem = dropdownItems.first;
  }
  @override
  Widget build(BuildContext context) {
    return Row(
      mainAxisAlignment: MainAxisAlignment.spaceBetween,
      children: <Widget>[
        Text(label),
        Container(
          width: 150,
          child: DropdownButton<String>(
              value: selectedItem,
              onChanged: (newValue) {
                setState(() => selectedItem = newValue);
              },
              items: dropdownItems.map((value) {
                return DropdownMenuItem(
                  value: value,
                  child: Text(value),
                );
              }).toList()),
        )
      ],
    );
  }
}
EN

Stack Overflow用户

回答已采纳

发布于 2019-09-06 21:59:11

我通过关闭模拟器并重新启动解决了我的问题。显然,有什么东西阻止了它正确地连接到Firestore。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57764780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档