删除文档并将其添加到Firebase时出现时间问题

问题描述 投票:0回答:1

我在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秒有点(我认为)。在过去的两个星期中,我尝试自己寻找一个选项,但没有结果。

firebase flutter google-cloud-firestore
1个回答
0
投票

无法加速从客户端应用程序删除文档。从客户的角度来看,您正在做的就是最快的事情。时间可能是由于您与托管数据库的服务器之间的延迟和有限的带宽所致。

考虑在物理上更靠近数据存储区域的服务器上编写一些后端代码。您可以通过编写客户端代码可以调用的Cloud Functions HTTP触发器来做到这一点。确保将触发器部署到与Firestore实例相同的Google Cloud区域。

© www.soinside.com 2019 - 2024. All rights reserved.