首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除Fi还原集合中的所有文档

删除Fi还原集合中的所有文档
EN

Stack Overflow用户
提问于 2017-12-18 00:36:25
回答 16查看 72.5K关注 0票数 62

我在找一种方法清理整个藏品。我看到了一个批处理更新选项,但这需要我知道集合中的所有文档in。

我正在寻找一种简单地删除集合中的每个文档的方法。

编辑:下面的答案是正确的,我使用了以下方法:

代码语言:javascript
复制
func delete(collection: CollectionReference, batchSize: Int = 100) {
    // Limit query to avoid out-of-memory errors on large collections.
    // When deleting a collection guaranteed to fit in memory, 
    // batching can be avoided entirely.
    collection.limit(to: batchSize).getDocuments { (docset, error) in
        // An error occurred.
        let docset = docset
        let batch = collection.firestore.batch()
        docset?.documents.forEach {
            batch.deleteDocument($0.reference)
        }
        batch.commit {_ in
            self.delete(collection: collection, batchSize: batchSize)
        }
    }
}
EN

回答 16

Stack Overflow用户

回答已采纳

发布于 2017-12-18 01:49:24

没有API可以一次性删除整个集合(或其内容)。

来自Firestore文档

若要删除云图恢复中的整个集合或子集合,请检索集合或子集合中的所有文档并删除它们。如果您有更大的集合,您可能希望在较小的批中删除这些文档,以避免内存不足的错误。重复此过程,直到删除了整个集合或子集合。

该文档中甚至有一个Swift示例,因此我建议您尝试一下。

Firebase CLI允许您使用单个命令删除整个集合,但它只是调用API来批量删除该集合中的所有文档。如果这适合您的需要,我建议您查看(稀疏) 命令

票数 23
EN

Stack Overflow用户

发布于 2019-02-02 02:03:42

以下javascript函数将删除任何集合:

代码语言:javascript
复制
deleteCollection(path) {
    firebase.firestore().collection(path).listDocuments().then(val => {
        val.map((val) => {
            val.delete()
        })
    })
}

这是通过遍历每个文档并删除每个文档来实现的。

或者,您可以使用Firestore的批处理命令,并使用以下函数一次性删除所有命令:

代码语言:javascript
复制
deleteCollection(path) {
    // Get a new write batch
    var batch = firebase.firestore().batch()

    firebase.firestore().collection(path).listDocuments().then(val => {
        val.map((val) => {
            batch.delete(val)
        })

        batch.commit()
    })
}
票数 42
EN

Stack Overflow用户

发布于 2019-01-16 15:04:55

现在,在firebase CLI中有一个选项可以删除整个防火墙数据库:

代码语言:javascript
复制
firebase firestore:delete --all-collections
票数 41
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47860812

复制
相关文章

相似问题

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