我需要获取此集合中的所有文档,其中包括很多查询-我已经成功接收了所有文档,但未来永无止境。
我尝试了WhenComplete,但仍然无法正常工作。
Future<Null> getOldVac(anId) async {
print("getOldVac");
await Firestore.instance
.collection("users")
.document(userId)
.collection("animals")
.document(anId)
.collection("anMedication")
.where("type", isEqualTo: "vac")
.where("result", isEqualTo: "")
.snapshots()
.forEach((onValue) {
print(onValue);
}).then((onValue) {
print("Done");
}).catchError((onError) {
print(onError);
});
}
在所有将来完成后,我需要打印“完成”。
答案 0 :(得分:0)
您需要返回一些信息,可以是您正在使用的null
或void
或抛出一些错误。
尝试像这样将return
放在await
的前面:
return await Firestore.instance
.collection("users")
.document(userId)
.collection("animals")
.document(anId)
.collection("anMedication")
.where("type", isEqualTo: "vac")
.where("result", isEqualTo: "")
.snapshots()
.forEach((onValue) {
print(onValue);
return null;
}).then((onValue) {
print("Done");
return null;
}).catchError((onError) {
print(onError);
throw onError;
});
答案 1 :(得分:0)
您正在将promises
与async await
混合!