2017-12-18 3 views
0

コレクション全体を消去する方法を探しています。バッチ更新オプションがあることがわかりましたが、コレクションのすべてのドキュメントIDを知っている必要があります。Firestoreコレクションのすべての文書を削除する

私はコレクション内のすべてのドキュメントを単に削除する方法を探しています。

ありがとうございます!

編集:以下の答えは、私は次のように使用し、正しいです:

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) 
    } 
} 

}

答えて

1

一度にコレクション全体(またはその内容)を削除するためにAPIはありません。 Firestore documentationから

クラウドFirestoreでコレクション全体またはサブコレクションを削除するには、コレクションまたはサブコレクション内のすべての文書を検索して削除します。大きなコレクションがある場合は、メモリ不足のエラーを避けるために、より小さなバッチでドキュメントを削除することをお勧めします。コレクション全体またはサブコレクションを削除するまで、このプロセスを繰り返します。

このドキュメントにはSwiftサンプルもありますので試してみることをおすすめします。

Firebase CLIのドキュメントでは、1つのコマンドでコレクション全体を削除することができますが、自分で試したことはありません。これがお客様のニーズに合っている場合は、(希薄な)documentation for the firestore:delete commandをご確認ください。

関連する問題