Poniższe przykłady pokazują, jak usuwać dokumenty, pola i kolekcje.
prompt AI dla pomocy AI
Aby uzyskać pomoc AI, skopiuj poniższy prompt do agenta kodowania AI (takiego jak Gemini w Android Studio, Antigravity, Claude Code, Codex czy Cursor). Możesz dostosować prompta i wprowadzać zmiany z agentem. Szczegółowe informacje o instalacji znajdziesz w artykule Umiejętności agenta Firebase.
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.
Usuń dokumenty
Aby usunąć dokument, użyj tych metod delete() zależnych od języka:
Web
Użyj metody deleteDoc():
import { doc, deleteDoc } from "firebase/firestore"; await deleteDoc(doc(db, "cities", "DC"));
Web
Użyj metody delete():
db.collection("cities").doc("DC").delete().then(() => { console.log("Document successfully deleted!"); }).catch((error) => { console.error("Error removing document: ", error); });
Swift
Użyj metody delete():
do { try await db.collection("cities").document("DC").delete() print("Document successfully removed!") } catch { print("Error removing document: \(error)") }
Objective-C
Użyj metody 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
Użyj metody delete():
db.collection("cities").document("DC") .delete() .addOnSuccessListener { Log.d(TAG, "DocumentSnapshot successfully deleted!") } .addOnFailureListener { e -> Log.w(TAG, "Error deleting document", e) }
Java
Użyj metody 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
Użyj metody delete():
db.collection("cities").doc("DC").delete().then( (doc) => print("Document deleted"), onError: (e) => print("Error updating document $e"), );
Java
Użyj metody delete():
Python
Użyj metody delete():
Python
Użyj metody delete():
C++
Użyj metody 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
Użyj metody delete():
Go
Użyj metody Delete():
PHP
Użyj metody delete():
Unity
Użyj metody DeleteAsync():
DocumentReference cityRef = db.Collection("cities").Document("DC"); cityRef.DeleteAsync();
C#
Użyj metody DeleteAsync():
Ruby
Użyj metody delete():
Gdy usuniesz dokument, Cloud Firestore nie usunie automatycznie dokumentów w jego podkolekcjach. Nadal możesz uzyskać dostęp do dokumentów podkolekcji przez odwołanie.
Możesz na przykład uzyskać dostęp do dokumentu w ścieżce /mycoll/mydoc/mysubcoll/mysubdoc, nawet jeśli usuniesz dokument nadrzędny w ścieżce /mycoll/mydoc.
Nieistniejące dokumenty nadrzędne pojawiają się w konsoli, ale nie są widoczne w wynikach zapytań ani w zrzutach.
Jeśli chcesz usunąć dokument i wszystkie dokumenty w jego podkolekcjach, musisz to zrobić ręcznie. Więcej informacji znajdziesz w artykule Usuwanie kolekcji.
Usuwanie pól
Aby usunąć określone pola z dokumentu, podczas aktualizowania dokumentu użyj tych metod FieldValue.delete() dla konkretnego języka:
Web
Użyj metody 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
Użyj metody 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
Użyj metody 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
Użyj metody 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
Użyj metody 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
Użyj metody 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
Użyj metody 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
Użyj metody FieldValue.delete():
Python
Użyj metody firestore.DELETE_FIELD:
Python
Użyj metody firestore.DELETE_FIELD:
C++
Użyj metody FieldValue::Delete():
DocumentReference doc_ref = db->Collection("cities").Document("BJ"); doc_ref.Update({{"capital", FieldValue::Delete()}}) .OnCompletion([](const Future<void>& future) { /*...*/ });
Node.js
Użyj metody FieldValue.delete():
Go
Użyj metody firestore.Delete:
PHP
Użyj metody FieldValue::deleteField():
Unity
Użyj metody FieldValue.Delete:
DocumentReference cityRef = db.Collection("cities").Document("BJ"); Dictionary<string, object> updates = new Dictionary<string, object> { { "Capital", FieldValue.Delete } };
C#
Użyj metody FieldValue.Delete:
Ruby
Użyj metody firestore.field_delete:
Usuwanie kolekcji
Aby usunąć całą kolekcję lub podkolekcję w Cloud Firestore, pobierz (odczytaj) wszystkie dokumenty w kolekcji lub podkolekcji i usuń je. Ten proces wiąże się z kosztami odczytu i usunięcia. Jeśli masz większe kolekcje, możesz usuwać dokumenty w mniejszych partiach, aby uniknąć błędów związanych z brakiem pamięci. Powtarzaj ten proces, aż usuniesz całą kolekcję lub podkolekcję.
Usunięcie kolekcji wymaga skoordynowania nieograniczonej liczby pojedynczych żądań usunięcia. Jeśli musisz usunąć całe kolekcje, rób to tylko w zaufanym środowisku serwera. Chociaż można usunąć kolekcję z klienta mobilnego lub internetowego, ma to negatywny wpływ na bezpieczeństwo i wydajność.
Poniższe fragmenty kodu zostały uproszczone w celu uniknięcia wątpliwości i nie obejmują obsługi błędów, zabezpieczeń, usuwania podkolekcji ani optymalizacji wydajności. Więcej informacji o zalecanym podejściu do usuwania kolekcji w środowisku produkcyjnym znajdziesz w artykule Usuwanie kolekcji i podkolekcji.
Sieć
// 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
Nie zalecamy usuwania kolekcji z poziomu klienta.
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
Usuwanie danych za pomocą zasad TTL
Zasada TTL określa dane pole jako czas ważności dokumentów w danej grupie kolekcji. Operacje usunięcia na podstawie TTL wliczają się do kosztów usuwania dokumentów.
Informacje o ustawianiu TTL znajdziesz w artykule Zarządzanie przechowywaniem danych za pomocą zasad TTL.
Zadania usuwania zbiorczego
Cloud Firestore obsługuje kilka narzędzi do usuwania zbiorczego. Wybierz narzędzie na podstawie liczby dokumentów, które chcesz usunąć, oraz wymaganego poziomu możliwości konfiguracji.
W przypadku mniejszych zadań obejmujących tysiące dokumentów użyj konsoli lub interfejsu wiersza poleceń Firebase. W przypadku większych zadań te narzędzia mogą zacząć przekraczać limit czasu i wymagać wielokrotnego uruchomienia.
Konsola
Możesz usunąć dokumenty i kolekcje na stronie Cloud Firestore w konsoli. Usunięcie dokumentu z konsoli powoduje usunięcie wszystkich zagnieżdżonych danych w tym dokumencie, w tym wszystkich podkolekcji.
wiersz poleceń Firebase
Do usuwania dokumentów i kolekcji możesz też używać interfejsu wiersza poleceń Firebase. Aby usunąć dane, użyj tego polecenia:
firebase firestore:delete --database=DATABASE_ID PATH
Zastąp DATABASE_ID identyfikatorem bazy danych, a PATH – ścieżką do dokumentu lub kolekcji.
W przypadku dużych zadań usuwania (miliony dokumentów) użyj jednej z tych metod:
Zarządzane usuwanie zbiorcze
Cloud Firestore obsługuje zbiorcze usuwanie co najmniej 1 grupy kolekcji. Więcej informacji znajdziesz w artykule Zbiorcze usuwanie danych.
Oprogramowanie sprzęgające Dataflow
Do wykonywania operacji zbiorczych na bazie danych możesz używać Dataflow. Ta opcja jest najbardziej konfigurowalna, ale wymaga też więcej konfiguracji niż inne opcje usuwania zbiorczego. W poście na blogu dotyczącym wprowadzenia do oprogramowania sprzęgającego Cloud Firestore dla Dataflow znajdziesz przykład usuwania wszystkich dokumentów w grupie kolekcji.