Die folgenden Beispiele veranschaulichen, wie Sie Dokumente, Felder und Sammlungen löschen.
KI-Prompt für KI-Unterstützung
Wenn Sie KI-Unterstützung wünschen, kopieren Sie den Prompt unten in Ihren KI-Coding-Agenten (z. B. Gemini in Android Studio, Antigravity, Claude Code, Codex und Cursor). Sie können den Prompt anpassen und mit Ihrem Agenten iterieren. Ausführliche Informationen zur Installation finden Sie unter Firebase-Agenten-Skills.
Help me use Firebase in my app.
1. Make sure that **Firebase agent skills** are installed and updated. For Claude Code, Codex, or Cursor agents, help me install the Firebase plugin. For other agents, run `npx skills add firebase/agent-skills`. Always try to use **Firebase agent skills** for Firebase-related tasks.
2. Help me delete documents, fields, and collections from Cloud Firestore in my app.
Dokumente löschen
Verwenden Sie zum Löschen eines Dokuments die folgenden sprachspezifischen delete()-Methoden:
Web
Verwenden Sie die Methode deleteDoc():
import { doc, deleteDoc } from "firebase/firestore"; await deleteDoc(doc(db, "cities", "DC"));
Web
Verwenden Sie die Methode delete():
db.collection("cities").doc("DC").delete().then(() => { console.log("Document successfully deleted!"); }).catch((error) => { console.error("Error removing document: ", error); });
Swift
Verwenden Sie die Methode delete():
do { try await db.collection("cities").document("DC").delete() print("Document successfully removed!") } catch { print("Error removing document: \(error)") }
Objective-C
Verwenden Sie die Methode 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
Verwenden Sie die Methode delete():
db.collection("cities").document("DC") .delete() .addOnSuccessListener { Log.d(TAG, "DocumentSnapshot successfully deleted!") } .addOnFailureListener { e -> Log.w(TAG, "Error deleting document", e) }
Java
Verwenden Sie die Methode 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
Verwenden Sie die Methode delete():
db.collection("cities").doc("DC").delete().then( (doc) => print("Document deleted"), onError: (e) => print("Error updating document $e"), );
Java
Verwenden Sie die Methode delete():
Python
Verwenden Sie die Methode delete():
Python
Verwenden Sie die Methode delete():
C++
Verwenden Sie die Methode 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
Verwenden Sie die Methode delete():
Go
Verwenden Sie die Methode Delete():
PHP
Verwenden Sie die Methode delete():
Einheit
Verwenden Sie die Methode DeleteAsync():
DocumentReference cityRef = db.Collection("cities").Document("DC"); cityRef.DeleteAsync();
C#
Verwenden Sie die Methode DeleteAsync():
Ruby
Verwenden Sie die Methode delete():
Wenn Sie ein Dokument löschen, werden die Dokumente in den zugehörigen Untersammlungen nicht automatisch von Cloud Firestore gelöscht. Sie können über einen Verweis weiterhin auf die untergeordnete Sammlung zugreifen.
Sie können beispielsweise auf das Dokument im Pfad /mycoll/mydoc/mysubcoll/mysubdoc zugreifen, auch wenn Sie das übergeordnete Dokument unter /mycoll/mydoc löschen.
Nicht vorhandene übergeordnete Dokumente werden in der Console angezeigt, aber nicht in Abfrageergebnissen und Snapshots.
Wenn Sie ein Dokument und alle in dessen untergeordneten Sammlungen enthaltenen Dokumente löschen möchten, müssen Sie dies manuell tun. Weitere Informationen finden Sie unter Sammlungen löschen.
Felder löschen
Wenn Sie bestimmte Felder aus einem Dokument löschen möchten, verwenden Sie beim Aktualisieren eines Dokuments die folgenden sprachspezifischen FieldValue.delete()-Methoden:
Web
Verwenden Sie die Methode 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
Verwenden Sie die Methode 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() });
Swift
Verwenden Sie die Methode FieldValue.delete():
do { try await db.collection("cities").document("BJ").updateData([ "capital": FieldValue.delete(), ]) print("Document successfully updated") } catch { print("Error updating document: \(error)") }
Objective-C
Verwenden Sie die Methode 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
Verwenden Sie die Methode 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
Verwenden Sie die Methode 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
Verwenden Sie die Methode 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
Verwenden Sie die Methode FieldValue.delete():
Python
Verwenden Sie die Methode firestore.DELETE_FIELD:
Python
Verwenden Sie die Methode firestore.DELETE_FIELD:
C++
Verwenden Sie die Methode FieldValue::Delete():
DocumentReference doc_ref = db->Collection("cities").Document("BJ"); doc_ref.Update({{"capital", FieldValue::Delete()}}) .OnCompletion([](const Future<void>& future) { /*...*/ });
Node.js
Verwenden Sie die Methode FieldValue.delete():
Go
Verwenden Sie die Methode firestore.Delete:
PHP
Verwenden Sie die Methode FieldValue::deleteField():
Einheit
Verwenden Sie die Methode FieldValue.Delete:
DocumentReference cityRef = db.Collection("cities").Document("BJ"); Dictionary<string, object> updates = new Dictionary<string, object> { { "Capital", FieldValue.Delete } };
C#
Verwenden Sie die Methode FieldValue.Delete:
Ruby
Verwenden Sie die Methode firestore.field_delete:
Sammlungen löschen
Wenn Sie eine gesamte Sammlung oder Untersammlung in Cloud Firestore löschen möchten, rufen Sie alle Dokumente in der Sammlung oder Untersammlung ab (lesen Sie sie) und löschen Sie sie. Für diesen Vorgang fallen sowohl Lese- als auch Löschkosten an. Wenn Sie größere Sammlungen haben, sollten Sie die Dokumente in kleineren Batches löschen, um Fehler aufgrund von Speichermangel zu vermeiden. Wiederholen Sie den Vorgang, bis Sie die gesamte Sammlung oder Untersammlung gelöscht haben.
Zum Löschen einer Sammlung muss eine unbegrenzte Anzahl einzelner Löschanfragen koordiniert werden. Wenn Sie ganze Sammlungen löschen möchten, tun Sie dies nur von einer vertrauenswürdigen Serverumgebung aus. Es ist zwar möglich, eine Sammlung von einem Mobil-/Web-Client aus zu löschen, dies hat jedoch negative Auswirkungen auf Sicherheit und Leistung.
Die folgenden Snippets sind zur besseren Übersicht vereinfacht und enthalten keine Fehlerbehandlung, Sicherheitsmaßnahmen, Löschung von Untersammlungen oder Leistungsoptimierungen. Weitere Informationen zu einem empfohlenen Ansatz zum Löschen von Sammlungen in der Produktion finden Sie unter Sammlungen und untergeordnete Sammlungen löschen.
Web
// Deleting collections from a Web client is not recommended.Swift
// Deleting collections from an Apple client is not recommended.Objective-C
// Deleting collections from an Apple client is not recommended.
Kotlin
// Deleting collections from an Android client is not recommended.Java
// Deleting collections from an Android client is not recommended.Dart
Das Löschen von Sammlungen über den Client wird nicht empfohlen.
Java
Python
Python
C++
// This is not supported. Delete data using CLI as discussed below.
Node.js
Go
PHP
Unity
// This is not supported. Delete data using CLI as discussed below.C#
Ruby
Daten mit TTL-Richtlinien löschen
In einer TTL-Richtlinie wird ein bestimmtes Feld als Ablaufzeit für Dokumente in einer bestimmten Sammlungsgruppe festgelegt. TTL-Löschvorgänge werden auf Ihre Kosten für das Löschen von Dokumenten angerechnet.
Informationen zum Festlegen der TTL finden Sie unter Datenaufbewahrung mit TTL-Richtlinien verwalten.
Bulk-Löschjobs
Cloud Firestore unterstützt mehrere Tools für das Bulk-Löschen. Wählen Sie ein Tool basierend auf der Anzahl der zu löschenden Dokumente und dem erforderlichen Konfigurierbarkeitsgrad aus.
Verwenden Sie für kleinere Jobs mit Tausenden von Dokumenten die Console oder die Firebase CLI. Bei größeren Jobs kann es zu Zeitüberschreitungen kommen, sodass Sie das Tool mehrmals ausführen müssen.
Console
Sie können Dokumente und Sammlungen auf der Seite Cloud Firestore in der Console löschen. Wenn Sie ein Dokument über die Console löschen, werden alle verschachtelten Daten in diesem Dokument gelöscht, einschließlich aller Untersammlungen.
Firebase CLI
Sie können auch die Firebase CLI verwenden, um Dokumente und Sammlungen zu löschen. Verwenden Sie den folgenden Befehl, um Daten zu löschen:
firebase firestore:delete --database=DATABASE_ID PATH
Ersetzen Sie DATABASE_ID durch Ihre Datenbank-ID und PATH durch einen Pfad zu einem Dokument oder einer Sammlung.
Verwenden Sie für große Löschjobs (Millionen von Dokumenten) eine der folgenden Optionen:
Verwaltetes Bulk-Löschen
Cloud Firestore unterstützt das Bulk-Löschen einer oder mehrerer Sammlungsgruppen. Weitere Informationen finden Sie unter Daten im Bulk löschen.
Dataflow-Connector
Sie können Dataflow für Bulk-Vorgänge in Ihrer Datenbank verwenden. Diese Option ist am besten konfigurierbar, erfordert aber auch mehr Einrichtung als andere Optionen für das Bulk-Löschen. Im Blogpost zur Einführung des Cloud Firestore-Connectors für Dataflow finden Sie ein Beispiel für das Löschen aller Dokumente in einer Sammlungsgruppe.