[SWIFT] Aux personnes qui ont supprimé un document dans Firestore, mais la sous-collection ne disparaît pas

J'essayais d'implémenter la fonction de publication SNS en utilisant Firebase / Firestore.

Cependant, même si j'ai supprimé les messages (posts / {postId}), les sous-collections (commentaires / {comment} n'ont pas disparu ...

Désolé pour la notation encombrée du document et de la sous-collection.

J'ai fait beaucoup de recherches là-bas, mais ... ・ Supprimer à l'aide de Cloud Fuctions -Écrire une méthode pour récupérer le document de commentaire séparément et le supprimer Seuls les articles.

CloudFuctions semble être obsolète car il est trop lent.

Ainsi, après un examen attentif tout en regardant le didacticiel,

func delete(collection: CollectionReference, batchSize: Int = 100, completion: @escaping (Error?) -> ()) {
        collection.limit(to: batchSize).getDocuments { (docset, error) in
            
            guard let docset = docset else {
                completion(error)
                return
            }
            
            guard docset.count > 0 else {
                completion(nil)
                return
            }
            
            let batch = collection.firestore.batch()
            docset.documents.forEach {batch.deleteDocument($0.reference)}
            batch.commit { (batchError) in
                
                if let batchError = batchError {
                    completion(batchError)
                }
                else {
                    self.delete(collection: collection, batchSize: batchSize, completion: completion)
                }
            }
        }
    }

Cette fonction a bien fonctionné. Veuillez appliquer la partie de finition en fonction de ce que vous voulez faire.

C'est pour mon propre mémo, et j'espère que cela aide parce que tout le monde peut le faire.

Recommended Posts

Aux personnes qui ont supprimé un document dans Firestore, mais la sous-collection ne disparaît pas
ne doit pas retourner dans l'instruction for
Premiers pas avec Java
La séquence d'échappement (\) ne fonctionne-t-elle pas? (pour Mac)
Instructions pour l'écriture de traitement lorsque des valeurs existent / n'existent pas dans Java Facultatif