web-dev-qa-db-fra.com

Comment supprimer tous les documents de la collection dans Firestore avec Flutter

J'ai une base de données Firestore. Les plugins de mon projet:

cloud_firestore: ^ 0.7.4 firebase_storage: ^ 1.0.1

Cela a une collection "messages" avec plusieurs documents. J'ai besoin de supprimer tous les documents de la collection de messages. Mais ce code échoue:

Firestore.instance.collection('messages').delete();

mais supprimer n'est pas définir

comment est la syntaxe correcte?

5
ALEXANDER LOZANO

Je pense que cela pourrait aider pour plusieurs collections dans toute référence de document

// add ${documentReference} that contains / may contains the ${collectionsList}
_recursiveDeleteDocumentNestedCollections(
      DocumentReference documentReference, List<String> collectionsList) async {
    // check if collection list length > 0
    if (collectionsList.length > 0) {
      // this line provide an async forEach and wait until it finished
      Future.forEach(collectionsList, (collectionName) async {
        // get the collection reference inside the provided document
        var nfCollectionRef = documentReference.collection(collectionName);
        try {
          // get nested collection documents
          var nestedDocuemtnsQuery = await nfCollectionRef.getDocuments();
          // loop through collection documents 
          Future.forEach(nestedDocuemtnsQuery.documents, (DocumentSnapshot doc) async {
            // recursive this function till the last nested collections documents
            _recursiveDeleteDocumentNestedCollections(
                doc.reference, collectionsList);
            // delete the main document
            doc.reference.delete();
          });
        } catch (e) {
          print('====================================');
          print(e);
          print('====================================');
        }
      });
    }
  }
0
ibrahem mustafa

Supprimer tous les documents de la collection Firestore un par un:

db.collection("users").document(userID).collection("cart")
    .get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
    public void onComplete(@NonNull Task<QuerySnapshot> task) {
        if (task.isSuccessful()) {
            for (QueryDocumentSnapshot document : task.getResult()) {                                  
                db.collection("users").document(userID).
                    collection("cart").document(document.getId()).delete();
            }
        } else {
        }
    }
});
0
Hurayrah Ahmed