我有几个文档ID,想在所有文档ID都收集完后运行一个函数。
现在我的代码如下:
List<Future<DocumentSnapshot>> futures = [];
currentVenuesIds.forEach((currentVenueId) {
Future<DocumentSnapshot> venueFuture = Firestore.instance
.collection('venues')
.document(currentVenueId)
.get();
futures.add(venueFuture);
});
futures.getAll(...) //????????? This does not exist
Cloud Firestore文档中有一种称为getAll()
的方法:https://cloud.google.com/nodejs/docs/reference/firestore/0.13.x/Firestore#getAll
Flutter
SDK是否有类似的东西?如果不是,最好的方法是并行地从服务器get()
来promise/future
并知道所有updateBlockValue
都已解决?
答案 0 :(得分:1)
仅服务器SDK提供getAll。当前没有等效的移动SDK。因为Flutter SDK只是Android和iOS SDK的包装,并且两者都不提供getAll,所以Flutter也没有提供它。现在,您只需要执行多次获取,这并没有听起来那么糟糕(所有请求都通过单个连接进行流水线处理。)
Dart有大量的资源wait for multiple futures。该问题并非Firestore独有。