首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一次向Firestore添加大量文档(例如1000+文档)时,应用程序挂起

一次向Firestore添加大量文档(例如1000+文档)时,应用程序挂起
EN

Stack Overflow用户
提问于 2020-08-20 00:38:34
回答 1查看 52关注 0票数 0

我正在尝试允许用户从客户端批量添加一堆文档到Firestore。当文档不是很多时,它工作得很好,但当有大量文档(例如1000+文档)时,它会添加所有文档,然后就会挂起。如果我关闭并重新打开应用程序,我会看到所有文档都已按需添加。

我使用以下内容逐个添加每个文档:

代码语言:javascript
复制
self.collection.document(noteID).setData(record.dictionary)

为什么在批量添加一堆文档后会挂起,但在较小的集合上却可以正常工作?有没有一种方法可以批量添加一堆文档到Firestore中,这样它们就不会挂起?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-20 07:13:53

这是因为每次写入都会生成一个需要执行的事务,而您的应用程序在等待每个事务响应时会挂起。

要在一个动作中编写大量文档,在官方文档中推荐使用Batch Writes

只需考虑到每个批处理可以占用tpo 500写入。

要在批量写入时添加数据,您可以这样做:

代码语言:javascript
复制
let batch = self.batch()

//set Documents to add 
let doc1 = self.collection(<COLLECTION>).document(noteID)
batch.setData(record.dictionary, forDocument: doc1)

//commit the batch
batch.commit() { err in
    if let err = err {
        print("Error writing batch \(err)")
    } else {
        print("Batch write succeeded.")
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63491376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档