如何解决无法使用 Cloud Firestore 获取文档或文档:^2.1.0 flutter
我刚刚升级到 cloud firestore: ^2.1.0
并且在 snapshots.data?.documents
或 snapshots.data?.docs
上出现错误消息 未为类型“对象”定义 getter 'documents' '. 在上面的代码中:
@override
Widget build(BuildContext context) {
return StreamBuilder(
stream: FirebaseFirestore.instance.collection('Courses').snapshots(),builder: (context1,snapshot) {
//just add this line
if (snapshot.data == null) return CircularProgressIndicator();
return ListView.builder(
itemCount: snapshot.data?.documents.length,itemBuilder: (context2,index) {
return GestureDetector(
onTap: () => Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => DetailCourseScreen(
snapshot.data?.documents[index]['title'],snapshot.data?.documents[index]['storage'],index),),child: _buildCourseList(
context2,snapshot.data?.documents[index],);
},);
},);
}
这是我的 pubspec.yaml
:
environment:
sdk: '>=2.12.0 <3.0.0'
dependencies:
cloud_firestore: ^2.1.0
firebase_core: ^1.1.1
firebase_storage: ^8.0.6
firebase_image: ^1.0.1
解决方法
我理解你的困惑。自从 cloud_firestore 2.0.0 更新以来,访问 cloud firestore 的数据变得有点奇怪。您可以使用以下代码访问您的数据:
StreamBuilder<QuerySnapshot<Map<String,dynamic>>>(
stream: FirebaseFirestore.instance
.collection('Courses')
.withConverter<Map<String,dynamic>>(
fromFirestore: (snapshot,_) => snapshot.data() ?? Map<String,dynamic>(),toFirestore: (model,_) => Map<String,dynamic>.from(model as Map),)
.snapshots(),builder: (context,snapshot) {
if (snapshot.data == null) return CircularProgressIndicator();
return ListView.builder(
itemCount: snapshot.data?.docs.length,itemBuilder: (context2,index) {
return GestureDetector(
onTap: () => Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => DetailCourseScreen(
snapshot.data?.docs[index].data()['title'],snapshot.data?.docs[index].data()['storage'],index),),child: _buildCourseList(context2,snapshot.data?.docs[index].data(),);
},);
},);
您可以在此处阅读有关此更新的更多信息:https://pub.dev/packages/cloud_firestore/changelog#200
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。