Flutter:使用Streambuilder <QuerySnapshot>

我的代码目前有问题,我正在尝试在数据库中获取特定数据。我要执行的操作是“收集”>“我要获取的特定文档”>“字段(我的阵列数据)”。到目前为止,我有一个代码可以执行我想做的事情,但是问题是它仅获取文档中的第一个数据。请帮忙。

我的代码:

 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();
                  }
                })

我的数据库结构:

Flutter:使用Streambuilder <QuerySnapshot>

非常需要帮助。

yu8023fei 回答:Flutter:使用Streambuilder <QuerySnapshot>

您可以更改此:

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>(...));
本文链接:https://www.f2er.com/3140543.html

大家都在问