ListView & Snapshot - error - Bad state: 字段在 DocumentSnapshotPlatform 中不存在



我对快照和ListView有点问题。到目前为止,它运行得很好。但自从我更新了flutter和Dart之后,我就出现了一个错误。

在构建StreamBuilder<查询快照<对象>gt;(脏,状态:_StreamBuilderBaseState<QuerySnapshot<Object?>,AsyncSnapshot<Query Snapshot&llt;Object?>>#8b4ae(:错误状态:DocumentSnapshotPlatform 中不存在字段

我不知道如何解决这个问题。我已经检查了文档中字段的名称,它很好。求你了,你能帮我理解一下吗?非常感谢。谢谢

import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
class ProjectsList3 extends StatefulWidget {
ProjectsList3 ({Key key}) : super(key : key);
@override
_ProjectsList3State createState() => _ProjectsList3State();
}
class _ProjectsList3State extends State<ProjectsList3> {
@override
Widget build(BuildContext context) {
return Scaffold(
drawer:  new MyMenu(),
appBar: new AppBar(
title: new Text('Projects'),
),
body: Column(
children: [
Expanded(
child: StreamBuilder<QuerySnapshot>(
stream: FirebaseFirestore.instance
.collection('Users')
.doc(FirebaseAuth.instance.currentUser.uid)
.collection('projects')
.snapshots(),
builder: (BuildContext context,
AsyncSnapshot<QuerySnapshot> snapshot) {
if(snapshot.connectionState == ConnectionState.waiting){
return Center(child: LinearProgressIndicator());
}
else{
return new ListView(
children: snapshot.data.docs.map((prgSnapshot){
return Card(
child: ListTile(
leading: CircleAvatar(
),
title: Text(prgSnapshot['project_Name']),
)
) ;
}).toList(),
);
//if (!snapshot.hasData) {
// return Center(
//   child: CircularProgressIndicator(),
// );
}
}
),
),
],
),
bottomNavigationBar: MyBottomAppBar(),
);
throw UnimplementedError();
}
}

在此代码中:

return new ListView(
children: snapshot.data.docs.map((prgSnapshot){
return Card(
child: ListTile(
leading: CircleAvatar(
),
title: Text(prgSnapshot['project_Name']),
)
) ;
}).toList(),
);

snapshot.dataQuerySnapshot,这意味着prgSnapshotDocumentSnapshot。如果检查该文档,您会发现它没有[]访问器。

如果要从文档的数据中获取字段,请使用prgSnapshot.data()['project_Name']prgSnapshot.get('project_Name')

首先,请尝试为实现ListView

if(snapshot.hasData)

最新更新