यहां दिए गए उदाहरणों से पता चलता है कि दस्तावेज़ों, फ़ील्ड, और कलेक्शन को कैसे मिटाया जाता है.
एआई असिस्टेंस के लिए एआई प्रॉम्प्ट
एआई असिस्टेंस पाने के लिए, यहां दिए गए प्रॉम्प्ट को अपने एआई कोडिंग एजेंट (जैसे, Android Studio में Gemini, Antigravity, Claude Code, Codex, और Cursor) में कॉपी करें. प्रॉम्प्ट को अपनी पसंद के मुताबिक बनाया जा सकता है. साथ ही, एजेंट के साथ मिलकर उसमें बदलाव किया जा सकता है. इंस्टॉल करने के बारे में ज़्यादा जानकारी के लिए, 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.
दस्तावेज़ मिटाना
किसी दस्तावेज़ को मिटाने के लिए, भाषा के हिसाब से delete() के इन तरीकों का इस्तेमाल करें:
Web
deleteDoc() वाला तरीका इस्तेमाल करना:
import { doc, deleteDoc } from "firebase/firestore"; await deleteDoc(doc(db, "cities", "DC"));
Web
delete() वाला तरीका इस्तेमाल करना:
db.collection("cities").doc("DC").delete().then(() => { console.log("Document successfully deleted!"); }).catch((error) => { console.error("Error removing document: ", error); });
Swift
delete() वाला तरीका इस्तेमाल करना:
do { try await db.collection("cities").document("DC").delete() print("Document successfully removed!") } catch { print("Error removing document: \(error)") }
Objective-C
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
delete() वाला तरीका इस्तेमाल करना:
db.collection("cities").document("DC") .delete() .addOnSuccessListener { Log.d(TAG, "DocumentSnapshot successfully deleted!") } .addOnFailureListener { e -> Log.w(TAG, "Error deleting document", e) }
Java
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
delete() वाला तरीका इस्तेमाल करना:
db.collection("cities").doc("DC").delete().then( (doc) => print("Document deleted"), onError: (e) => print("Error updating document $e"), );
Java
delete() वाला तरीका इस्तेमाल करना:
Python
delete() वाला तरीका इस्तेमाल करना:
Python
delete() वाला तरीका इस्तेमाल करना:
C++
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
delete() वाला तरीका इस्तेमाल करना:
जाएं
Delete() वाला तरीका इस्तेमाल करना:
PHP
delete() वाला तरीका इस्तेमाल करना:
Unity
DeleteAsync() वाला तरीका इस्तेमाल करना:
DocumentReference cityRef = db.Collection("cities").Document("DC"); cityRef.DeleteAsync();
C#
DeleteAsync() वाला तरीका इस्तेमाल करना:
Ruby
delete() वाला तरीका इस्तेमाल करना:
किसी दस्तावेज़ को मिटाने पर, Cloud Firestore उसके सब-कलेक्शन में मौजूद दस्तावेज़ों को अपने-आप नहीं मिटाता. रेफ़रंस की मदद से, सब-कलेक्शन के दस्तावेज़ों को अब भी ऐक्सेस किया जा सकता है.
उदाहरण के लिए, /mycoll/mydoc पर मौजूद पैरंट दस्तावेज़ को मिटाने के बाद भी, /mycoll/mydoc/mysubcoll/mysubdoc पाथ पर मौजूद दस्तावेज़ को ऐक्सेस किया जा सकता है.
मौजूद नहीं होने वाले पैरंट दस्तावेज़ कंसोल में दिखते हैं, लेकिन वे क्वेरी के नतीजों और स्नैपशॉट में नहीं दिखते.
अगर आपको कोई दस्तावेज़ और उसके सब-कलेक्शन में मौजूद सभी दस्तावेज़ मिटाने हैं, तो आपको ऐसा मैन्युअल तरीके से करना होगा. ज़्यादा जानकारी के लिए, कलेक्शन मिटाना लेख पढ़ें.
फ़ील्ड मिटाना
किसी दस्तावेज़ को अपडेट करते समय, उसमें मौजूद कुछ फ़ील्ड मिटाने के लिए, यहां दिए गए FieldValue.delete() तरीके इस्तेमाल करें. ये तरीके, प्रोग्रामिंग की भाषा के हिसाब से अलग-अलग होते हैं:
Web
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
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
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
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
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
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
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
FieldValue.delete() वाला तरीका इस्तेमाल करना:
Python
firestore.DELETE_FIELD वाला तरीका इस्तेमाल करना:
Python
firestore.DELETE_FIELD वाला तरीका इस्तेमाल करना:
C++
FieldValue::Delete() वाला तरीका इस्तेमाल करना:
DocumentReference doc_ref = db->Collection("cities").Document("BJ"); doc_ref.Update({{"capital", FieldValue::Delete()}}) .OnCompletion([](const Future<void>& future) { /*...*/ });
Node.js
FieldValue.delete() वाला तरीका इस्तेमाल करना:
जाएं
firestore.Delete वाला तरीका इस्तेमाल करना:
PHP
FieldValue::deleteField() वाला तरीका इस्तेमाल करना:
Unity
FieldValue.Delete वाला तरीका इस्तेमाल करना:
DocumentReference cityRef = db.Collection("cities").Document("BJ"); Dictionary<string, object> updates = new Dictionary<string, object> { { "Capital", FieldValue.Delete } };
C#
FieldValue.Delete वाला तरीका इस्तेमाल करना:
Ruby
firestore.field_delete वाला तरीका इस्तेमाल करना:
कलेक्शन मिटाना
Cloud Firestore में किसी पूरे कलेक्शन या सब-कलेक्शन को मिटाने के लिए, कलेक्शन या सब-कलेक्शन में मौजूद सभी दस्तावेज़ों को वापस लाएं (पढ़ें) और उन्हें मिटाएं. इस प्रोसेस में, डेटा को पढ़ने और मिटाने, दोनों के लिए शुल्क लिया जाता है. अगर आपके पास बड़े कलेक्शन हैं, तो दस्तावेज़ों को छोटे-छोटे बैच में मिटाएं. इससे, मेमोरी खत्म होने की गड़बड़ियों से बचा जा सकता है. इस प्रोसेस को तब तक दोहराएं, जब तक कि पूरा कलेक्शन या सब-कलेक्शन मिटा न दिया जाए.
किसी कलेक्शन को मिटाने के लिए, मिटाने के कई अनुरोधों को एक साथ मैनेज करना पड़ता है. अगर आपको पूरे कलेक्शन मिटाने हैं, तो ऐसा सिर्फ़ किसी भरोसेमंद सर्वर एनवायरमेंट से करें. किसी मोबाइल/वेब क्लाइंट से कलेक्शन को मिटाया जा सकता है. हालांकि, ऐसा करने से सुरक्षा और परफ़ॉर्मेंस पर बुरा असर पड़ता है.
यहां दिए गए स्निपेट को आसान बनाया गया है, ताकि इसे आसानी से समझा जा सके. इनमें गड़बड़ी को ठीक करने, सुरक्षा, सब-कलेक्शन मिटाने या परफ़ॉर्मेंस को ऑप्टिमाइज़ करने की सुविधा शामिल नहीं है. प्रोडक्शन में कलेक्शन मिटाने के सुझाए गए तरीके के बारे में ज़्यादा जानने के लिए, कलेक्शन और सब-कलेक्शन मिटाना लेख पढ़ें.
वेब
// 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
क्लाइंट से कलेक्शन मिटाने का सुझाव नहीं दिया जाता.
Java
Python
Python
C++
// This is not supported. Delete data using CLI as discussed below.
Node.js
जाएं
PHP
Unity
// This is not supported. Delete data using CLI as discussed below.C#
Ruby
टीटीएल नीतियों की मदद से डेटा मिटाना
टीटीएल नीति, किसी फ़ील्ड को किसी कलेक्शन ग्रुप में मौजूद दस्तावेज़ों की समयसीमा खत्म होने के समय के तौर पर तय करती है. टीटीएल के तहत मिटाए गए दस्तावेज़ों की संख्या, दस्तावेज़ मिटाने की लागत में जोड़ी जाती है.
टीटीएल सेट करने के बारे में जानकारी पाने के लिए, टीटीएल की नीतियों की मदद से डेटा के रखरखाव को मैनेज करना लेख पढ़ें.
एक साथ कई आइटम मिटाने वाले जॉब
Cloud Firestore पर, एक साथ कई आइटम मिटाने के लिए कई टूल उपलब्ध हैं. आपको कितने दस्तावेज़ मिटाने हैं और आपको कॉन्फ़िगरेशन के किस लेवल की ज़रूरत है, इसके आधार पर आपको कोई टूल चुनना चाहिए.
हज़ारों दस्तावेज़ों वाले छोटे कामों के लिए, कंसोल या Firebase CLI का इस्तेमाल करें. बड़े कामों के लिए, इन टूल का टाइम आउट हो सकता है. ऐसे में, आपको टूल को कई बार चलाना पड़ सकता है.
कंसोल
Console में Cloud Firestore पेज पर जाकर, दस्तावेज़ और कलेक्शन मिटाए जा सकते हैं. कंसोल से किसी दस्तावेज़ को मिटाने पर, उस दस्तावेज़ में मौजूद सारा नेस्ट किया गया डेटा मिट जाता है. इसमें कोई भी सब-कलेक्शन शामिल है.
Firebase CLI
दस्तावेज़ों और कलेक्शन को मिटाने के लिए, Firebase CLI का भी इस्तेमाल किया जा सकता है. डेटा मिटाने के लिए, इस निर्देश का इस्तेमाल करें:
firebase firestore:delete --database=DATABASE_ID PATH
DATABASE_ID को अपने डेटाबेस आईडी से और PATH को किसी दस्तावेज़ या कलेक्शन के पाथ से बदलें.
ज़्यादा संख्या में दस्तावेज़ (लाखों दस्तावेज़) मिटाने के लिए, इनमें से किसी एक तरीके का इस्तेमाल करें:
एक साथ कई आइटम मिटाने की सुविधा को मैनेज किया गया
Cloud Firestore में एक या उससे ज़्यादा कलेक्शन ग्रुप को एक साथ मिटाया जा सकता है. ज़्यादा जानकारी के लिए, एक साथ कई डेटा मिटाना लेख पढ़ें.
Dataflow कनेक्टर
अपने डेटाबेस पर एक साथ कई कार्रवाइयां करने के लिए, Dataflow का इस्तेमाल किया जा सकता है. इस विकल्प को सबसे ज़्यादा कॉन्फ़िगर किया जा सकता है. हालांकि, एक साथ कई ईमेल मिटाने के अन्य विकल्पों की तुलना में, इसे सेट अप करने में ज़्यादा समय लगता है. Dataflow के बारे में जानकारी देने वाली ब्लॉग पोस्ट में, Cloud Firestore कनेक्टर के बारे में देखें. इसमें, कलेक्शन ग्रुप में मौजूद सभी दस्तावेज़ों को मिटाने का उदाहरण दिया गया है.