我正在寻找清除整个收藏夹的方法。我看到有一个批处理更新选项,但这需要我知道集合中的所有文档ID。
我正在寻找一种简单地删除集合中每个文档的方法。
谢谢!
编辑:下面的答案是正确的,我使用以下方法:
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) } } }
没有API可以一次性删除整个集合(或其内容)。
从Firestore文档中:
要在Cloud Firestore中删除整个集合或子集合,请检索集合或子集合中的所有文档并将其删除。如果集合较大,则可能要分批删除文档,以避免内存不足的错误。重复该过程,直到您删除了整个集合或子集合。
该文档中甚至有一个Swift示例,因此我建议您尝试一下。
Firebase CLI的文档似乎暗示可以用一个命令删除整个集合,但是我自己没有尝试过。如果这适合您的需求,建议您查阅该firestore:delete命令的(稀疏)文档。
firestore:delete