不能将 'Object?' 类型的值分配给类型为"列表<Cita>"的变量



错误:类型为"Object?"的值不能分配给"List"类型的变量。请尝试更改变量的类型,或将右侧的类型强制转换为"List"。

class _CitaListState extends State<CitaList> {
@override
Widget build(BuildContext context) {
return FutureBuilder(
future:


CitaService().getByEmail(FirebaseAuth.instance.currentUser!.email),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return Container(
child: Text('No tiene citas'),
);
}
List<Cita> citas = snapshot.data; // Line error

return ListView.builder(
itemCount: citas.length,
itemBuilder: (context, index) {
Cita c = citas[index];
return ListTile(
leading: Text(c.turn.toString()),
title: Text(c.formattedDay()),
trailing: c.status == 'cancelled'
? null
: IconButton(onPressed: () {}, icon: Icon(Icons.delete)),
);
});
});
}
}

getByEmail这是我的getByEmail方法,它是我设置值的地方​​存储在我的数据库中

class CitaService {
Future<void> create(String? email, DateTime day) async {
try {
await FirebaseFirestore.instance
.collection('citas')
.add({'email': email, 'day': day, 'turn': 1, 'status': 'pendiente'});
} catch (e) {
print(e);
}
}
Future<List<Cita>?> getByEmail(String? email) async {
try {
var snapshot = await FirebaseFirestore.instance
.collection('citas')
.where('email', isEqualTo: email)
.get();
List<Cita> citas = [];
snapshot.docs.forEach((element) {
citas.add(Cita.fromSnapshot(element));
});
return citas;
} catch (e) {
print(e);
return null;
}
}
}

尝试在FutureBuilder's类型中传递List<Cita>?

FutureBuilder<List<Cita>?>(//<---add this
future: CitaService().getByEmail(FirebaseAuth.instance.currentUser!.email),
builder:...
)

最新更新