【发布时间】:2021-04-07 00:50:41
【问题描述】:
我正在尝试从 firestore 删除文档,使用:
FirebaseFirestore.instance
.collection("Data")
.where('user_id', isEqualTo: uid)
.get()
.then((snapshot) {
for (DocumentSnapshot ds in snapshot.docs) {
ds.reference.delete().then((value) {
print("document deleted");
moveToNextDeletion(); // <-The function shold be called only once
});
}
});
所以一旦所有文档被删除,我想调用moveToNextDeletion(); 函数,但它会一直调用直到所有文档被删除(导致 for 循环)。
删除所有文档后,有什么方法可以调用该函数吗?
【问题讨论】:
-
您需要将每次调用
delete()返回的所有期货收集到一个数组中,并使用 Future.wait 等待它们。 -
调用
delete()时firebase不会返回任何东西,所以我没有任何东西可以收集到数组中! -
不,
delete()返回一个 Future。您的代码当前正在调用then()一个。 -
谢谢,@dougStevenson 你的评论很有用。
标签: firebase flutter dart google-cloud-firestore