我正在try 使用我的Cloud FiRestore数据库中的数据,但我收到了这个错误,我不知道为什么会出现这个错误,也不知道如何修复它.就我而言,错误所涉及的两种数据类型是相同的.
以下是错误:
The argument type 'Future<List<Exercise>>' can't be assigned to the parameter type 'Future<List<Exercise>>?'
个
以下是出现错误的代码片段.错误出在这一部分:FirestoreService().getExercises()
child: FutureBuilder<List<Exercise>>(
future: FirestoreService().getExercises(),
builder: (context, snapshot)
完整代码: exercise_list.dart个
class ExerciseList extends StatelessWidget {
const ExerciseList({super.key});
@override
Widget build(BuildContext context) {
return Expanded(
child: DecoratedBox(
decoration: const BoxDecoration(
color: Colors.white,
),
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 20, horizontal: 30),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
child: FutureBuilder<List<Exercise>>(
future: FirestoreService().getExercises(),
builder: (context, snapshot) {
if (snapshot.hasError) {
return const Text('Something went wrong');
}
if (snapshot.connectionState == ConnectionState.waiting) {
return const Center(
child: CircularProgressIndicator(),
);
}
return ListView.builder(
itemCount: snapshot.data!.length,
itemBuilder: (context, index) => ExerciseItem(
exercise: snapshot.data![index],
),
);
},
),
),
],
),
),
),
);
}
}
firestore.dart个
/// Reads all documents from the exercises collection
Future<List<Exercise>> getExercises() async {
var ref = _db.collection('exercises');
var snapshot = await ref.get();
var data = snapshot.docs.map((s) => s.data());
var exercises = data.map((d) => Exercise.fromJson(d));
return exercises.toList();
}
如有任何帮助,我们将不胜感激