【发布时间】:2020-04-16 15:24:36
【问题描述】:
我在 Flutter 中创建了一个应用程序,并尝试在 Firebase 中刷新数据,删除旧文档并添加新文档。一个一个删除 100 个文档(整个集合)大约需要 19.158398 秒,添加 100 个文档需要 17.511311。当我执行刷新需要删除整个集合并使用新文档重新创建它之后。 这是我删除集合的所有文档的方式:
QuerySnapshot qs = await Firestore.instance
.collection('DOCUMENTS')
.where('WS', isEqualTo: '${globals.qSN}')
.limit(2)
.getDocuments();
if (qs.documents.length > 0) {
await Firestore.instance
.collection('DOCUMENTS')
.getDocuments()
.then((snapshot) async{
for (DocumentSnapshot doc in snapshot.documents) {
await doc.reference.delete();
}
});
}
这就是我添加文档的方式:
for(var obj in object.data){
await Firestore.instance
.collection('DOCUMENTS')
.add({
'MT': '${obj.mt}',
'CODE': '${obj.code}',
'NAME': '${obj.name}',});}
你能帮我谈谈如何更快地做到这一点吗?等待 36 秒有点过分(在我看来)。在过去的两周里,我试图自己找到一个选项,但没有得到任何结果。
【问题讨论】:
-
您可以通过批处理请求来加快速度。您应该将所有操作作为一个整体进行,而不是一一进行。我实际上不知道它是如何工作的,但我会开始环顾这门课
Firestore.instance.batch(); -
归根结底,你理应成为赢家。删除时间:0:00:00.757063 插入时间:0:00:00.008760
标签: firebase flutter google-cloud-firestore