Flutter 颤振:使用Streambuilder时如何在firestore中获取特定文档<;QuerySnapshot>;

Flutter 颤振:使用Streambuilder时如何在firestore中获取特定文档<;QuerySnapshot>;,flutter,dart,google-cloud-firestore,flutter-layout,Flutter,Dart,Google Cloud Firestore,Flutter Layout,我目前在我的代码上遇到了一个问题,在这个问题上,我试图获取数据库中的特定数据。我想做的是收集>我试图获取的特定文档>字段(我的数组数据)。到目前为止,我有一个代码,它执行我试图执行的操作,但问题是它只获取文档中的第一个数据。请帮忙 我的代码: StreamBuilder<QuerySnapshot>( stream: db.collection('NOTIFICATION').snapshots(), builder:

我目前在我的代码上遇到了一个问题,在这个问题上,我试图获取数据库中的特定数据。我想做的是收集>我试图获取的特定文档>字段(我的数组数据)。到目前为止,我有一个代码,它执行我试图执行的操作,但问题是它只获取文档中的第一个数据。请帮忙

我的代码:

 StreamBuilder<QuerySnapshot>(
                stream: db.collection('NOTIFICATION').snapshots(),
                builder: (context, snapshot) {
                  if (snapshot.hasData) {
                    return Column (
                        children: snapshot.data.documents.first['Respondent']
                            .map<Widget>((respondent) => buildItem(respondent))
                            .toList());
                  } else {
                    return SizedBox();
                  }
                })
StreamBuilder(
流:db.collection('NOTIFICATION').snapshots(),
生成器:(上下文,快照){
if(snapshot.hasData){
返回列(
子项:快照。数据。文档。第一个['responder']
.map((响应者)=>buildItem(响应者))
.toList());
}否则{
返回SizedBox();
}
})
我的数据库结构:

急需帮助。

您可以更改此设置:

snapshot.data.documents.first['Respondents'];
为此:

snapshot.data.documents.firstWhere((doc) => doc.documentID == 'id')['Respondents'];

处理不同案件:

var doc = snapshot.data.documents
    .firstWhere((doc) => doc.documentID == 'id', orElse: () => null);
if (doc == null) {
  return Text('Document doesn\'t exist');
} else if (doc['Respondents'] == null) {
  return Text('Document without respondents');
} 
return Column(children: doc['Respondents'].map<Widget>(...));
var doc=snapshot.data.documents
.firstWhere((doc)=>doc.documentID=='id',或lse:()=>null);
如果(doc==null){
返回文本(“文档不存在”);
}else if(文件[‘应答者】==null){
返回文本(“没有应答者的文档”);
} 
返回列(子项:doc[‘应答者’].map(…);

它似乎在说坏状态:No element sir@pablo。它在sir@pablo工作,但问题是如果“id”上没有用于参考的数据。它显示了“坏状态:无元素”的无限循环,先生,我该如何解决这个问题?我试着只输出一个容器或一个大小的盒子,但它不起作用。它仍然显示一个无限循环的“坏状态:没有元素”先生:(我应该仍然用if(snapshot.hasdata){}来包装它吗?现在可以了!非常感谢先生@pablo。你是唯一一个总是帮助我的人。非常尊敬你。