Firestore 类型不匹配:参数类型"列表"<Null>不能分配给参数类型"列表<JobPost>"



在一个flutter项目中,我正在尝试进行CollectionGroup查询。但类型搞砸了。这是我的代码:

Stream<Either<JobPostFailure, List<JobPost>>> watchAppliedJobPosts({
required String seamanId,
}) async* {
yield* _firestore
.collectionGroup(ConstStrings.applications)
.where(ConstStrings.seamanId, isEqualTo: seamanId)
.snapshots()
.map((querySnapshot) {
return right(querySnapshot.docs.map((docSnapshot) {
final jobPostDocRef = docSnapshot.reference;
jobPostDocRef.snapshots().map((doc) {
final jobPost = JobPostDto.fromFirestore(doc).toDomain();
return jobPost;
});
}).toList());
});
}

我希望得到一个List<JobPost>,但在return right(querySnapshot.docs.map((docSnapshot) {...行出现以下错误:

参数类型'List<Null>'无法分配给参数类型'列表<JobPost>'。

虽然我返回List<JobPost>,但错误显示它是List<Null>。错误在哪里?如何解决这个问题?

您缺少一个return关键字:

return /* <-- */ jobPostDocRef.snapshots().map((doc) {

也就是说,当方法中显然没有其他选项时,为什么要用Either返回类型来复杂化这个函数?它总是返回right,所以您不妨从返回类型中删除Either

相关内容

  • 没有找到相关文章

最新更新