Flutter 从集合中检索文档并将详细信息作为对象存储在Flatter中的列表中

Flutter 从集合中检索文档并将详细信息作为对象存储在Flatter中的列表中,flutter,google-cloud-firestore,Flutter,Google Cloud Firestore,我试图存储用户创建的事件的详细信息(存储在Firestore中),并使用它们填充卡片。我实现了一个类,该类检索并存储对象列表中的值。我遇到的问题是,当我试图访问一些对象时,我得到一个空值,填充卡片的小部件抛出一条错误消息 用于检索和存储文档的代码为: import'包:cloud_firestore/cloud_firestore.dart'; CollectionReference events=FirebaseFirestore.instance.collection(“事件”); Doc

我试图存储用户创建的事件的详细信息(存储在Firestore中),并使用它们填充卡片。我实现了一个类,该类检索并存储对象列表中的值。我遇到的问题是,当我试图访问一些对象时,我得到一个空值,填充卡片的小部件抛出一条错误消息

用于检索和存储文档的代码为:

import'包:cloud_firestore/cloud_firestore.dart';
CollectionReference events=FirebaseFirestore.instance.collection(“事件”);
DocumentReference eventDocs=events.doc();
列出用户事件列表;
//列出firebaseEvents=[];
班级活动{
最终字符串eventName、eventID、位置、持续时间、描述、创建者ID、imagePath;
字符串类别;
最终清单类别;
事件(
{
这个.imagePath,
这个.eventName,
这个.eventID,
这个位置,
这个时间,,
这个.说明,,
这个,创造者,
这个,分类号,
//这是画廊里的图像,
}
);
}
Future getData()异步{
最终事件列表=[];
Stream eventDocs=events.snapshots();
eventDocs.forEach((元素){
element.docs.asMap().forEach((键,值){
最终firebaseEventDocs=新事件(
imagePath:“资产/事件\图像/默认\图像.jpeg”,
eventName:element.docs[键][“eventName”],
description:element.docs[key][“description”],
位置:element.docs[键][“位置”],
持续时间:element.docs[键][“持续时间”],
categoryID:[0,element.docs[key][“category”]];
eventsList.add({
firebaseEventDocs,
});
});
});
userEventsList=eventsList;
打印(“列表为”+userEvents.toString());
}
最终用户事件=用户事件列表;
关于这个问题有什么想法吗

编辑: “何处”在我的主页中:

import'包:cloud_firestore/cloud_firestore.dart';
导入“包:firebase_auth/firebase_auth.dart”;
进口“包装:颤振/材料.省道”;
导入“package:localeventsapp/Screens/Login/Login_screen.dart”;
导入“package:localeventsapp/model/category.dart”;
导入“package:localeventsapp/model/event.dart”;
导入“package:localeventsapp/styleguide.dart”;
导入“package:localeventsapp/ui/event_details/event_details_page.dart”;
导入“package:localeventsapp/ui/homepage/form_widget.dart”;
导入“包:provider/provider.dart”;
导入“../app_state.dart”;
导入“../../authentication_service.dart”;
导入“category_widget.dart”;
导入“event_widget.dart”;
导入“home_page_background.dart”;
CollectionReference users=FirebaseFirestore.instance.collection(“用户”);
//CollectionReference usersEvents=FirebaseFirestore.instance.collection(“事件”);
FirebaseAuth auth=FirebaseAuth.instance;
字符串uid=auth.currentUser.uid.toString();
类MainPage扩展了StatefulWidget{
主页createState()=>主页();
}
类主页扩展状态{
//Future getData()异步{
////从集合引用获取文档
//QuerySnapshot QuerySnapshot=await usersEvents.get();
//
////从文档中获取数据并将地图转换为列表
//final allData=querySnapshot.docs.map((doc)=>doc.data()).toList();
//
//打印(所有数据);
// }
@凌驾
小部件构建(构建上下文){
返回脚手架(
正文:ChangeNotifierProvider(
创建:()=>AppState(),
子:堆栈(
儿童:[
主页背景(
屏幕高度:MediaQuery.of(context).size.height,
),
安全区(
子:SingleChildScrollView(
子:列(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
填充物(
填充:常量边集。对称(水平:32.0),
孩子:排(
儿童:[
正文(
“TuLink”,
风格:fadedTextStyle,
),
垫片(),
],
),
),
填充物(
填充:常量边集。对称(水平:32.0),
子:文本(
“欢迎!”,
样式:whiteHeadingTextStyle,
),
),
填充物(
填充:常量边集。对称(垂直:24.0),
儿童:消费者(
生成器:(上下文,appState,)=>
SingleChildScrollView(
滚动方向:轴水平,
孩子:排(
儿童:[
对于(类别中的最终类别)
类别Widget(类别:类别),
],
),
),
),
),
填充物(
填充:常量边集。对称(水平:16.0),
儿童:消费者(
生成器:(上下文,appState,)=>列(
儿童:[
对于(事件中的最终事件),其中((e)=>e
.分类
.contains(appState.selectedCategoryId)))
手势检测器(
onTap:(){
导航器.of(上下文).push(
材料路线(
生成器:(上下文)=>