Aşağıdaki örneklerde dokümanların, alanların ve koleksiyonların nasıl silineceği gösterilmektedir.
Yapay Zeka Desteği için yapay zeka istemi
Yapay zeka desteği için aşağıdaki istemi kopyalayıp yapay zeka kodlama asistanınıza (ör. Android Studio'da Gemini, Antigravity, Claude Code, Codex ve Cursor) yapıştırın. İstemi özelleştirebilir ve temsilcinizle birlikte üzerinde çalışabilirsiniz. Ayrıntılı kurulum bilgileri için Firebase aracı becerileri sayfasını ziyaret edin.
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.
Dokümanları silme
Bir dokümanı silmek için aşağıdaki dile özgü delete() yöntemlerini kullanın:
Web
deleteDoc() yöntemini kullanın:
import { doc, deleteDoc } from "firebase/firestore"; await deleteDoc(doc(db, "cities", "DC"));
Web
delete() yöntemini kullanın:
db.collection("cities").doc("DC").delete().then(() => { console.log("Document successfully deleted!"); }).catch((error) => { console.error("Error removing document: ", error); });
Swift
delete() yöntemini kullanın:
do { try await db.collection("cities").document("DC").delete() print("Document successfully removed!") } catch { print("Error removing document: \(error)") }
Objective-C
deleteDocumentWithCompletion: yöntemini kullanın:
[[[self.db collectionWithPath:@"cities"] documentWithPath:@"DC"] deleteDocumentWithCompletion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error removing document: %@", error); } else { NSLog(@"Document successfully removed!"); } }];
Kotlin
delete() yöntemini kullanın:
db.collection("cities").document("DC") .delete() .addOnSuccessListener { Log.d(TAG, "DocumentSnapshot successfully deleted!") } .addOnFailureListener { e -> Log.w(TAG, "Error deleting document", e) }
Java
delete() yöntemini kullanın:
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
delete() yöntemini kullanın:
db.collection("cities").doc("DC").delete().then( (doc) => print("Document deleted"), onError: (e) => print("Error updating document $e"), );
Java
delete() yöntemini kullanın:
Python
delete() yöntemini kullanın:
Python
delete() yöntemini kullanın:
C++
Delete() yöntemini kullanın:
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
delete() yöntemini kullanın:
Go
Delete() yöntemini kullanın:
PHP
delete() yöntemini kullanın:
Unity
DeleteAsync() yöntemini kullanın:
DocumentReference cityRef = db.Collection("cities").Document("DC"); cityRef.DeleteAsync();
C#
DeleteAsync() yöntemini kullanın:
Ruby
delete() yöntemini kullanın:
Bir dokümanı sildiğinizde Cloud Firestore, alt koleksiyonlarındaki dokümanları otomatik olarak silmez. Alt koleksiyon belgelerine referansla erişmeye devam edebilirsiniz.
Örneğin, /mycoll/mydoc yolundaki üst dokümanı silseniz bile /mycoll/mydoc/mysubcoll/mysubdoc yolundaki dokümana erişebilirsiniz.
Mevcut olmayan üst belgeler konsolda görünür ancak sorgu sonuçlarında ve anlık görüntülerde görünmez.
Bir dokümanı ve alt koleksiyonlarındaki tüm dokümanları silmek istiyorsanız bunu manuel olarak yapmanız gerekir. Daha fazla bilgi için Koleksiyonları silme başlıklı makaleyi inceleyin.
Alanları silme
Bir dokümandan belirli alanları silmek için dokümanı güncellerken aşağıdaki dile özgü FieldValue.delete() yöntemlerini kullanın:
Web
deleteField() yöntemini kullanın:
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
FieldValue.delete() yöntemini kullanın:
var cityRef = db.collection('cities').doc('BJ'); // Remove the 'capital' field from the document var removeCapital = cityRef.update({ capital: firebase.firestore.FieldValue.delete() });
Swift
FieldValue.delete() yöntemini kullanın:
do { try await db.collection("cities").document("BJ").updateData([ "capital": FieldValue.delete(), ]) print("Document successfully updated") } catch { print("Error updating document: \(error)") }
Objective-C
fieldValueForDelete: yöntemini kullanın:
[[[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
FieldValue.delete() yöntemini kullanın:
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
FieldValue.delete() yöntemini kullanın:
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
FieldValue.delete() yöntemini kullanın:
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
FieldValue.delete() yöntemini kullanın:
Python
firestore.DELETE_FIELD yöntemini kullanın:
Python
firestore.DELETE_FIELD yöntemini kullanın:
C++
FieldValue::Delete() yöntemini kullanın:
DocumentReference doc_ref = db->Collection("cities").Document("BJ"); doc_ref.Update({{"capital", FieldValue::Delete()}}) .OnCompletion([](const Future<void>& future) { /*...*/ });
Node.js
FieldValue.delete() yöntemini kullanın:
Go
firestore.Delete yöntemini kullanın:
PHP
FieldValue::deleteField() yöntemini kullanın:
Unity
FieldValue.Delete yöntemini kullanın:
DocumentReference cityRef = db.Collection("cities").Document("BJ"); Dictionary<string, object> updates = new Dictionary<string, object> { { "Capital", FieldValue.Delete } };
C#
FieldValue.Delete yöntemini kullanın:
Ruby
firestore.field_delete yöntemini kullanın:
Koleksiyonları silme
Cloud Firestore içinde bir koleksiyonun veya alt koleksiyonun tamamını silmek için koleksiyon ya da alt koleksiyondaki tüm dokümanları alıp (okuyup) silin. Bu işlem hem okuma hem de silme maliyetlerine neden olur. Daha büyük koleksiyonlarınız varsa bellek yetersizliği hatalarını önlemek için belgeleri daha küçük gruplar halinde silmeniz gerekebilir. Koleksiyonun veya alt koleksiyonun tamamını silene kadar bu işlemi tekrarlayın.
Bir koleksiyonu silmek için sınırsız sayıda silme isteğinin koordine edilmesi gerekir. Koleksiyonların tamamını silmeniz gerekiyorsa bunu yalnızca güvenilir bir sunucu ortamından yapın. Bir koleksiyonu mobil/web istemcisinden silmek mümkün olsa da bu işlem güvenlik ve performans açısından olumsuz sonuçlar doğurur.
Aşağıdaki snippet'ler, anlaşılır olması için basitleştirilmiştir ve hata işleme, güvenlik, alt koleksiyonları silme veya performans optimizasyonları içermez. Üretim ortamında koleksiyonları silmek için önerilen bir yaklaşım hakkında daha fazla bilgi edinmek istiyorsanız Koleksiyonları ve Alt Koleksiyonları Silme başlıklı makaleyi inceleyin.
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
Koleksiyonların istemciden silinmesi önerilmez.
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
TTL politikalarıyla verileri silme
TTL politikası, belirli bir alanı belirli bir koleksiyon grubundaki belgelerin geçerlilik bitiş zamanı olarak belirler. TTL silme işlemleri, doküman silme maliyetlerinize dahil edilir.
TTL'yi ayarlama hakkında bilgi için TTL politikalarıyla veri saklamayı yönetme başlıklı makaleyi inceleyin.
Toplu silme işleri
Cloud Firestore, toplu silme işlemi için çeşitli araçları destekler. Silmeniz gereken doküman sayısına ve ihtiyacınız olan yapılandırılabilirlik düzeyine göre bir araç seçmeniz gerekir.
Binlerce belge içeren daha küçük işler için konsolu veya Firebase CLI'yı kullanın. Daha büyük işlerde bu araçlar zaman aşımına uğrayabilir ve aracı birden çok kez çalıştırmanız gerekebilir.
Konsol
Konsoldaki Cloud Firestore sayfasından dokümanları ve koleksiyonları silebilirsiniz. Konsoldan bir dokümanı sildiğinizde, alt koleksiyonlar da dahil olmak üzere o dokümandaki tüm iç içe yerleştirilmiş veriler silinir.
Firebase CLI
Belgeleri ve koleksiyonları silmek için Firebase CLI'yı da kullanabilirsiniz. Verileri silmek için aşağıdaki komutu kullanın:
firebase firestore:delete --database=DATABASE_ID PATH
DATABASE_ID ifadesini veritabanı kimliğinizle, PATH ifadesini ise bir doküman veya koleksiyonun yoluyla değiştirin.
Büyük silme işleri (milyonlarca doküman) için aşağıdakilerden birini kullanın:
Yönetilen toplu silme
Cloud Firestore, bir veya daha fazla koleksiyon grubunun toplu olarak silinmesini destekler. Daha fazla bilgi için Verileri toplu olarak silme başlıklı makaleyi inceleyin.
Dataflow bağlayıcısı
Veritabanınızda toplu işlemler yapmak için Dataflow'u kullanabilirsiniz. Bu seçenek en fazla yapılandırma imkanı sunan seçenektir ancak diğer toplu silme seçeneklerine göre daha fazla kurulum gerektirir. Dataflow için Cloud Firestore bağlayıcısına bakın. Giriş niteliğindeki blog yayınında, bir koleksiyon grubundaki tüm dokümanların nasıl silineceğine dair bir örnek verilmiştir.