Flutter Firestore QuerySnapshot 没有 getter 'document 的实例

Sat*_*an 3 android ios flutter google-cloud-firestore

我正在使用它从 firestore 数据库获取消息列表,但是,它给了我一个错误:

flutter: 以下 NoSuchMethodError 被抛出 building: flutter: Class 'QuerySnapshot' has no instance getter 'document'。颤振:接收器:“QuerySnapshot”实例颤振:尝试调用:文档

我使用的代码是:

StreamBuilder(
                stream: Firestore.instance
                    .collection('messages')
                    .document(groupId)
                    .collection(groupId)
                    .orderBy('timestamp', descending: true)
                    .snapshots(),
                builder: (BuildContext context, AsyncSnapshot snapshot) {
                  if (!snapshot.hasData) {
                    return Center(
                      child: CircularProgressIndicator(),
                    );
                  } else {
                    listMessage = snapshot.data.documents;
                    return ListView.builder(
                      padding: EdgeInsets.all(10.0),
                      itemBuilder: (context, index) =>
                          buildItem(index, snapshot.data.document[index]),
                      itemCount: snapshot.data.documents.length,
                      reverse: true,
                      controller: scrollController,
                    );
                  }
                },
              ),
Run Code Online (Sandbox Code Playgroud)

我是 Firestore 的新手,noSQL 任何人都可以帮忙吗?

小智 19

我遇到了同样的问题,我的解决方法是更改documentsdocs,请参见以下内容:

snapshot.data.docs[index]
Run Code Online (Sandbox Code Playgroud)


Sat*_*an 5

所以问题在于builder:(BuildContext context, AsyncSnapshot snapshot)它应该是(BuildContext context, AsyncSnapshot'<'QuerySnapshot'>' snapshot)添加的你将能够访问snapshot.data.documents

QuerySnapshot如果没有尖括号周围的引号,我必须将它们放在那里才能在 Stackoverflow 上显示。