Les exemples suivants montrent comment supprimer des documents, des champs et des collections.
Supprimer des documents
Pour supprimer un document, utilisez les méthodes delete()
spécifiques au langage suivantes :
Web version 9
Utilisez la méthode deleteDoc()
:
import { doc, deleteDoc } from "firebase/firestore"; await deleteDoc(doc(db, "cities", "DC"));
Web version 8
Utilisez la méthode delete()
:
db.collection("cities").doc("DC").delete().then(() => { console.log("Document successfully deleted!"); }).catch((error) => { console.error("Error removing document: ", error); });
Rapide
Utilisez la méthode delete()
:
db.collection("cities").document("DC").delete() { err in if let err = err { print("Error removing document: \(err)") } else { print("Document successfully removed!") } }
Objectif c
Utilisez la méthode deleteDocumentWithCompletion:
: :
[[[self.db collectionWithPath:@"cities"] documentWithPath:@"DC"] deleteDocumentWithCompletion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error removing document: %@", error); } else { NSLog(@"Document successfully removed!"); } }];
Kotlin+KTX
Utilisez la méthode delete()
:
db.collection("cities").document("DC") .delete() .addOnSuccessListener { Log.d(TAG, "DocumentSnapshot successfully deleted!") } .addOnFailureListener { e -> Log.w(TAG, "Error deleting document", e) }
Java
Utilisez la méthode delete()
:
db.collection("cities").document("DC") .delete() .addOnSuccessListener(new OnSuccessListener<Void>() { @Override public void onSuccess(Void aVoid) { Log.d(TAG, "DocumentSnapshot successfully deleted!"); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "Error deleting document", e); } });
Dart
Utilisez la méthode delete()
:
db.collection("cities").doc("DC").delete().then( (doc) => print("Document deleted"), onError: (e) => print("Error updating document $e"), );
Java
Utilisez la méthode delete()
:
Python
Utilisez la méthode delete()
:
Python
Utilisez la méthode delete()
:
C++
Utilisez la méthode Delete()
:
db->Collection("cities").Document("DC").Delete().OnCompletion( [](const Future<void>& future) { if (future.error() == Error::kErrorOk) { std::cout << "DocumentSnapshot successfully deleted!" << std::endl; } else { std::cout << "Error deleting document: " << future.error_message() << std::endl; } });
Node.js
Utilisez la méthode delete()
:
Aller
Utilisez la méthode Delete()
:
PHP
Utilisez la méthode delete()
:
Unité
Utilisez la méthode DeleteAsync()
:
DocumentReference cityRef = db.Collection("cities").Document("DC"); cityRef.DeleteAsync();
C#
Utilisez la méthode DeleteAsync()
:
Rubis
Utilisez la méthode delete()
:
Lorsque vous supprimez un document, Cloud Firestore ne supprime pas automatiquement les documents de ses sous-collections. Vous pouvez toujours accéder aux documents de la sous-collection par référence. Par exemple, vous pouvez accéder au document au chemin /mycoll/mydoc/mysubcoll/mysubdoc
même si vous supprimez le document ancêtre à /mycoll/mydoc
.
Les documents ancêtres inexistants apparaissent dans la console , mais ils n'apparaissent pas dans les résultats de requête et les instantanés.
Si vous souhaitez supprimer un document et tous les documents de ses sous-collections, vous devez le faire manuellement. Pour plus d'informations, voir Supprimer des collections .
Supprimer des champs
Pour supprimer des champs spécifiques d'un document, utilisez les méthodes FieldValue.delete()
spécifiques à la langue suivantes lorsque vous mettez à jour un document :
Web version 9
Utilisez la méthode deleteField()
:
import { doc, updateDoc, deleteField } from "firebase/firestore"; const cityRef = doc(db, 'cities', 'BJ'); // Remove the 'capital' field from the document await updateDoc(cityRef, { capital: deleteField() });
Web version 8
Utilisez la méthode FieldValue.delete()
:
var cityRef = db.collection('cities').doc('BJ'); // Remove the 'capital' field from the document var removeCapital = cityRef.update({ capital: firebase.firestore.FieldValue.delete() });
Rapide
Utilisez la méthode FieldValue.delete()
:
db.collection("cities").document("BJ").updateData([ "capital": FieldValue.delete(), ]) { err in if let err = err { print("Error updating document: \(err)") } else { print("Document successfully updated") } }
Objectif c
Utilisez la méthode fieldValueForDelete:
: :
[[[self.db collectionWithPath:@"cities"] documentWithPath:@"BJ"] updateData:@{ @"capital": [FIRFieldValue fieldValueForDelete] } completion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error updating document: %@", error); } else { NSLog(@"Document successfully updated"); } }];
Kotlin+KTX
Utilisez la méthode FieldValue.delete()
:
val docRef = db.collection("cities").document("BJ") // Remove the 'capital' field from the document val updates = hashMapOf<String, Any>( "capital" to FieldValue.delete() ) docRef.update(updates).addOnCompleteListener { }
Java
Utilisez la méthode FieldValue.delete()
:
DocumentReference docRef = db.collection("cities").document("BJ"); // Remove the 'capital' field from the document Map<String,Object> updates = new HashMap<>(); updates.put("capital", FieldValue.delete()); docRef.update(updates).addOnCompleteListener(new OnCompleteListener<Void>() { // ... // ...
Dart
Utilisez la méthode FieldValue.delete()
:
final docRef = db.collection("cities").doc("BJ"); // Remove the 'capital' field from the document final updates = <String, dynamic>{ "capital": FieldValue.delete(), }; docRef.update(updates);
Java
Utilisez la méthode FieldValue.delete()
:
Python
Utilisez la méthode firestore.DELETE_FIELD
:
Python
Utilisez la méthode firestore.DELETE_FIELD
:
C++
Utilisez la méthode FieldValue::Delete()
:
DocumentReference doc_ref = db->Collection("cities").Document("BJ"); doc_ref.Update({{"capital", FieldValue::Delete()}}) .OnCompletion([](const Future<void>& future) { /*...*/ });
Node.js
Utilisez la méthode FieldValue.delete()
:
Aller
Utilisez la méthode firestore.Delete
:
PHP
Utilisez la méthode FieldValue::deleteField()
:
Unité
Utilisez la méthode FieldValue.Delete
:
DocumentReference cityRef = db.Collection("cities").Document("BJ"); Dictionary<string, object> updates = new Dictionary<string, object> { { "Capital", FieldValue.Delete } };
C#
Utilisez la méthode FieldValue.Delete
:
Rubis
Utilisez la méthode firestore.field_delete
:
Supprimer des collections
Pour supprimer une collection ou une sous-collection entière dans Cloud Firestore, récupérez tous les documents de la collection ou de la sous-collection et supprimez-les. Si vous avez des collections plus importantes, vous souhaiterez peut-être supprimer les documents par lots plus petits pour éviter les erreurs de mémoire insuffisante. Répétez le processus jusqu'à ce que vous ayez supprimé toute la collection ou la sous-collection.
La suppression d'une collection nécessite la coordination d'un nombre illimité de demandes de suppression individuelles. Si vous devez supprimer des collections entières, faites-le uniquement à partir d'un environnement de serveur approuvé. Bien qu'il soit possible de supprimer une collection d'un client mobile/web, cela a des implications négatives sur la sécurité et les performances.
Les extraits ci-dessous sont quelque peu simplifiés et ne traitent pas de la gestion des erreurs, de la sécurité, de la suppression de sous-collections ou de l'optimisation des performances. Pour en savoir plus sur une approche recommandée pour supprimer des collections en production, consultez Suppression de collections et de sous-collections .
la toile
// Deleting collections from a Web client is not recommended.
Rapide
// Deleting collections from an Apple client is not recommended.
Objectif c
// Deleting collections from an Apple client is not recommended.
Kotlin+KTX
// Deleting collections from an Android client is not recommended.
Java
// Deleting collections from an Android client is not recommended.
Dart
La suppression de collections du client n'est pas recommandée.
Java
Python
Python
C++
// This is not supported. Delete data using CLI as discussed below.
Node.js
Aller
PHP
Unité
// This is not supported. Delete data using CLI as discussed below.
C#
Rubis
Supprimer des données avec la CLI Firebase
Vous pouvez également utiliser la CLI Firebase pour supprimer des documents et des collections. Utilisez la commande suivante pour supprimer des données :
firebase firestore:delete [options] <<path>>
Supprimer des données avec la console
Vous pouvez supprimer des documents et des collections depuis la page Cloud Firestore de la console . La suppression d'un document de la console supprime toutes les données imbriquées dans ce document, y compris toutes les sous-collections.