我试图同时获取用户文档及其子集合。但是我发现在查询中是不可能的。因此,我决定从另一个角度解决这个问题。
我有一个getRelative()
吸气剂,它返回Stream<Relative>
。
Stream<Relative> get getRelative async* {
List<Patient> patientList;
patientList = await getPatientCollection
.forEach((element) => element.patients)
.then((value) => value);
yield* usersCollection
.document(_userEmail)
.snapshots()
.map((snapshot) => _relativeDataFromSnapshot(snapshot, patientList));
}
getPatientCollection()
是另一种获取方法,它返回Stream<PatinetList>
。我不会详细说明吸气剂。因为它工作正常。
问题是当我得到Stream<PatientList>
时,我得到了Stream
。因此,为了将其转换为Future
,我使用了forEach
方法。而且它也可以正常工作。我可以看到element.patients
不为空。我可以看到它的内部以及它的返回类型List<Patient>
。
但是当我调试它时,在forEach()
完成其工作之后,我意识到它返回null。并且patientList
变为空。这会导致问题。
getPatientCollection
?]]我试图同时获取用户文档及其子集合。但是我发现在查询中是不可能的。因此,我决定从另一个角度解决这个问题。 ...
Stream.forEach
是Stream
的List.forEach
等效项(返回void
)。它用于对每个元素进行一些操作,而不是用于返回新的集合。如果要将Stream<T>
转换为List<T>
,则可以执行await stream.toList()
。