इंस्टेंस आईडी आपके ऐप के अलग-अलग इंस्टॉलेशन की पहचान करते हैं। चूंकि प्रत्येक इंस्टेंस आईडी किसी विशेष ऐप और डिवाइस के लिए अद्वितीय है, इसलिए वे फायरबेस सेवाओं को विशिष्ट ऐप इंस्टेंस को संदर्भित करने का एक तरीका देते हैं। उदाहरण के लिए, क्लाउड मैसेजिंग यह निर्धारित करने के लिए इंस्टेंस आईडी का उपयोग करता है कि किन उपकरणों को संदेश भेजना है।
कई Firebase सेवाएं अपनी सुविधाओं को सशक्त बनाने के लिए इंस्टेंस आईडी का उपयोग करती हैं:
- एनालिटिक्स
- क्रैशलिटिक्स
- क्लाउड मैसेजिंग
- रिमोट कॉन्फिग
इंस्टेंस आईडी से संबद्ध ऐप्लिकेशन डेटा प्रबंधित करें
ऐसी सेवाएँ जो इंस्टेंस आईडी का उपयोग इंस्टॉलेशन की पहचान करने के लिए करती हैं, उनका उपयोग उस डिवाइस के साथ प्रासंगिक डेटा को संबद्ध करने के लिए एक कुंजी के रूप में भी करती हैं। उदाहरण के लिए, Crashlytics डिवाइस पर होने वाले क्रैश को रिकॉर्ड करने के लिए इंस्टेंस आईडी का उपयोग करता है, Remote Config कॉन्फ़िगरेशन लाने के लिए उनका उपयोग करता है, और Analytics विशेष ऑडियंस को ट्रैक करने के लिए इंस्टेंस आईडी का उपयोग करता है।
इंस्टेंस आईडी से जुड़ा डेटा आमतौर पर व्यक्तिगत रूप से पहचानने वाला नहीं होता है, लेकिन फिर भी यह उपयोगकर्ताओं को इसे प्रबंधित करने का विकल्प देने में मददगार हो सकता है। इसके लिए, फायरबेस इंस्टेंस-आईडी-संबंधित डेटा संग्रह को प्रबंधित करने के दो तरीके प्रदान करता है:
- इंस्टेंस आईडी हटाएं। आप सर्वर- या क्लाइंट-साइड API कॉल के साथ एक इंस्टेंस आईडी हटा सकते हैं। इंस्टेंस आईडी को हटाने से आईडी और उससे जुड़े सभी डेटा को हटा दिया जाता है।
- आईडी जनरेट करने वाली सेवाओं को अक्षम करें। इंस्टेंस आईडी का उपयोग करने वाली अधिकांश फ़ायरबेस सेवाएं स्वचालित रूप से एक नई आईडी उत्पन्न करती हैं यदि डिवाइस शुरू होने पर डिवाइस पर कोई आईडी नहीं होती है। यह सुनिश्चित करने के लिए कि आपका ऐप अवांछित इंस्टेंस आईडी नहीं बनाता है, उन सेवाओं के लिए ऑटो-इनिशियलाइज़ेशन अक्षम करें।
एक इंस्टेंस आईडी हटाएं
इंस्टेंस आईडी को हटाने से ऊपर सूचीबद्ध किसी भी फायरबेस सेवा में उस आईडी से जुड़ा डेटा भी हट जाता है। यह उपयोगकर्ता डेटा को साफ़ करने में आईडी हटाने को एक सहायक उपकरण बनाता है, लेकिन एक चेतावनी के साथ आता है: यदि आप कई सेवाओं का उपयोग कर रहे हैं जो इंस्टेंस आईडी पर निर्भर हैं, तो आईडी हटाने से उन सभी से डेटा साफ़ हो जाता है।
इंस्टेंस आईडी सेवा कुछ दिनों के भीतर एक नई आईडी बनाती है, जब तक कि आप अपने ऐप में सभी इंस्टेंस-आईडी-जनरेटिंग सेवाओं को अक्षम नहीं करते। Firebase नई बनाई गई आईडी को बिल्कुल नया ऐप इंस्टेंस मानता है, और इसे किसी भी तरह से पिछली आईडी से संबद्ध नहीं करता है।
क्लाइंट एपीआई कॉल के साथ एक आईडी हटाएं
फायरबेस सेवाओं द्वारा उत्पन्न आईडी को हटाने के लिए, फायरबेस इंस्टेंस आईडी एपीआई से उपयुक्त विधि को कॉल करें:
तीव्र
InstanceID.instanceID().deleteID { error in
if let error = error {
print("Error deleting instance ID: \(error)")
}
}
उद्देश्य सी
[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
if error != nil {
NSLog(@"Error deleting instance ID: %@", error);
}
}];
एंड्रॉयड
FirebaseInstanceId.deleteInstanceId();
सर्वर एपीआई कॉल के साथ एक आईडी हटाएं
सर्वर API कॉल वाले इंस्टेंस आईडी को हटाने के लिए, यदि आपने पहले से नहीं किया है, तो अपने सर्वर में Firebase Admin SDK जोड़ें ।
एक बार इसे जोड़ने के बाद, अपनी पसंद की भाषा में इंस्टेंस आईडी हटाने के कार्य के लिए कॉल के माध्यम से आईडी हटाएं:
Node.js
// An Instance ID sent from a client service SDK
const idToDelete = 'INSTANCE_ID';
admin.instanceId().deleteInstanceId(idToDelete);
जावा
// An Instance ID sent from a client service SDK
String idToDelete = "INSTANCE_ID";
FirebaseInstanceId.getInstance().deleteInstanceIdAsync(idToDelete).get();
अजगर
from firebase_admin import instance_id
# An Instance ID sent from a client service SDK
id_to_delete = 'INSTANCE_ID'
instance_id.delete_instance_id(id_to_delete)
जाओ
client, err := app.InstanceId(ctx)
if err != nil {
log.Fatalln("error initializing client", err)
}
iidToDelete := "INSTANCE_ID"
if err := client.DeleteInstanceId(ctx, iidToDelete); err != nil {
log.Fatalln("error deleting iid", err)
}
जब आप सर्वर API कॉल के साथ एक इंस्टेंस आईडी हटाते हैं, तो फायरबेस सेवाएं संबंधित डेटा को हटा देती हैं, उस आईडी के लिए नया डेटा स्वीकार करना बंद कर देती हैं, और कुछ दिनों के भीतर, क्लाइंट ऐप को सूचित करती हैं कि आईडी हटा दी गई थी। जब तक Firebase क्लाइंट ऐप को सूचित नहीं करता, तब तक ऐप की कुछ सेवाओं की कार्यक्षमता कम हो सकती है।
यदि आप वर्तमान इंस्टेंस आईडी को हटाना चाहते हैं और तुरंत एक नई, स्वतंत्र आईडी के साथ फायरबेस सेवाओं का उपयोग करना चाहते हैं, तो विलोपन को संभालने के लिए उपरोक्त क्लाइंट एपीआई में से एक का उपयोग करें।
इंस्टेंस आईडी जनरेशन अक्षम करें
इंस्टेंस आईडी का उपयोग करने वाली सेवाएं स्वचालित रूप से एक नई आईडी उत्पन्न करती हैं जब वे किसी ऐसे ऐप में प्रारंभ होती हैं जिसमें वर्तमान में एक नहीं है। आम तौर पर, जब आपका ऐप लॉन्च होता है तो वे सेवाएं भी स्वचालित रूप से प्रारंभ हो जाती हैं। इंस्टेंस आईडी जनरेशन को अक्षम करने के लिए, आपको उन सेवाओं के लिए ऑटो-इनिशियलाइज़ेशन को अक्षम करना होगा जो उनका उपयोग करती हैं।
एक सामान्य तरीका यह है कि उपयोगकर्ताओं को डेटा संग्रह में ऑप्ट-इन करने का विकल्प दिया जाए: इंस्टेंस आईडी का उपयोग करने वाली सेवाओं के लिए ऑटो-इनिशियलाइज़ेशन अक्षम करें, एक संवाद लागू करें जो उपयोगकर्ताओं को डेटा संग्रह के लिए उनकी सहमति के लिए प्रेरित करता है, और सेवाओं को मैन्युअल रूप से एक बार फिर से सक्षम करता है। आपकी सहमति है।
इंस्टेंस-आईडी-उपयोग सेवाओं के लिए ऑटो-इनिशियलाइज़ेशन को अक्षम करने का तरीका जानने के लिए नीचे दी गई मार्गदर्शिकाएँ पढ़ें और इसके बजाय उन्हें मैन्युअल रूप से इनिशियलाइज़ करें:
- क्लाउड मैसेजिंग: ऑटो-इनिशियलाइज़ेशन (Android) को रोकें या ऑटो-इनिशियलाइज़ेशन को रोकें (iOS+)
- क्रैश रिपोर्टिंग: ऑप्ट-इन रिपोर्टिंग सक्षम करें
- विश्लेषिकी: विश्लेषिकी डेटा संग्रह कॉन्फ़िगर करें