इंस्टेंस आईडी का डेटा मैनेज करना

इंस्टेंस आईडी, आपके ऐप्लिकेशन के अलग-अलग इंस्टॉलेशन की पहचान करते हैं. किसी खास ऐप्लिकेशन और डिवाइस का हर इंस्टेंस आईडी यूनीक होता है. इसलिए, ये Firebase सेवाओं को किसी खास ऐप्लिकेशन इंस्टेंस को रेफ़र करने का तरीका उपलब्ध कराते हैं. उदाहरण के लिए, क्लाउड से मैसेज करने की सुविधा, इंस्टेंस आईडी का इस्तेमाल करके यह तय करती है कि किन डिवाइसों पर मैसेज भेजे जाएं.

कई Firebase सेवाएं अपनी सुविधाओं को बेहतर बनाने के लिए इंस्टेंस आईडी का इस्तेमाल करती हैं:

  • Analytics
  • Crashlytics
  • Cloud Messaging
  • Remote Config

इंस्टेंस आईडी से जुड़ा ऐप्लिकेशन का डेटा मैनेज करना

इंस्टॉलेशन की पहचान करने के लिए, इंस्टेंस आईडी का इस्तेमाल करने वाली सेवाएं भी इन आईडी का इस्तेमाल, उस डिवाइस के साथ काम का डेटा जोड़ने के लिए करती हैं. उदाहरण के लिए, Crashlytics, डिवाइस पर होने वाले क्रैश को रिकॉर्ड करने के लिए इंस्टेंस आईडी का इस्तेमाल करता है. वहीं, रिमोट कॉन्फ़िगरेशन कॉन्फ़िगरेशन फ़ेच करने के लिए उनका इस्तेमाल करता है, और Analytics किसी ऑडियंस को ट्रैक करने के लिए इंस्टेंस आईडी का इस्तेमाल करता है.

आम तौर पर, इंस्टेंस आईडी से जुड़े डेटा की पहचान नहीं की जाती. हालांकि, उपयोगकर्ताओं को इसे मैनेज करने का विकल्प दिया जा सकता है. इस हिसाब से, Firebase में इंस्टेंस-आईडी से जुड़े डेटा कलेक्शन को मैनेज करने के दो तरीके मौजूद हैं:

  • इंस्टेंस आईडी मिटाएं. आपके पास, सर्वर या क्लाइंट-साइड एपीआई कॉल वाले इंस्टेंस आईडी को मिटाने का विकल्प है. इंस्टेंस आईडी को मिटाने से, आईडी और उससे जुड़ा पूरा डेटा मिट जाता है.
  • आईडी जनरेट करने वाली सेवाओं को बंद करें. इंस्टेंस आईडी का इस्तेमाल करने वाली ज़्यादातर Firebase सेवाएं, शुरू करते समय डिवाइस पर कोई भी आईडी न होने पर, अपने-आप एक नया आईडी जनरेट कर देती हैं. यह पक्का करने के लिए कि आपका ऐप्लिकेशन अनचाहे इंस्टेंस आईडी न बनाए, उन सेवाओं के लिए, अपने-आप शुरू होने की सुविधा बंद करें.

इंस्टेंस आईडी मिटाना

इंस्टेंस आईडी मिटाने से, ऊपर दी गई Firebase की किसी भी सेवा में मौजूद आईडी से जुड़ा डेटा भी मिट जाता है. इससे, आईडी को मिटाने की सुविधा, उपयोगकर्ता का डेटा मिटाने में मदद करती है. हालांकि, इससे जुड़ी एक चेतावनी भी होती है: अगर इंस्टेंस आईडी पर निर्भर कई सेवाओं का इस्तेमाल किया जा रहा है, तो आईडी को मिटाने से सभी का डेटा मिट जाएगा.

इंस्टेंस आईडी सेवा कुछ दिनों में एक नया आईडी बनाती है, बशर्ते आपने अपने ऐप्लिकेशन में इंस्टेंस-आईडी जनरेट करने वाली सभी सेवाओं को बंद न किया हो. Firebase, नए आईडी को ऐप्लिकेशन इंस्टेंस मानता है और उसे किसी भी तरीके से पिछले आईडी से नहीं जोड़ता.

Client API कॉल वाला आईडी मिटाएं

Firebase सेवाओं से जनरेट किए गए आईडी मिटाने के लिए, Firebase इंस्टेंस आईडी एपीआई से सही तरीके को कॉल करें:

Swift

InstanceID.instanceID().deleteID { error in
  if let error = error {
    print("Error deleting instance ID: \(error)")
  }
}

Objective-C

[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
  if error != nil {
    NSLog(@"Error deleting instance ID: %@", error);
  }
}];

Android

FirebaseInstanceId.deleteInstanceId();

सर्वर एपीआई कॉल से किया गया आईडी मिटाना

सर्वर एपीआई कॉल वाले इंस्टेंस आईडी को मिटाने के लिए, अपने सर्वर में Firebase एडमिन SDK टूल जोड़ें. अगर आपने पहले से ऐसा नहीं किया है, तो ऐसा करें.

इसे जोड़ने के बाद, अपनी पसंद की भाषा में इंस्टेंस आईडी मिटाने वाले फ़ंक्शन को कॉल करके, आईडी को मिटा दें:

Node.js के लिए

// An Instance ID sent from a client service SDK
const idToDelete = 'INSTANCE_ID';

admin.instanceId().deleteInstanceId(idToDelete);

Java

// An Instance ID sent from a client service SDK
String idToDelete = "INSTANCE_ID";

FirebaseInstanceId.getInstance().deleteInstanceIdAsync(idToDelete).get();

Python

  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)
}

जब किसी सर्वर एपीआई कॉल वाले इंस्टेंस आईडी को मिटाया जाता है, तो Firebase सेवाएं उससे जुड़ा डेटा मिटा देती हैं और उस आईडी के लिए नया डेटा स्वीकार करना बंद कर देती हैं. साथ ही, कुछ दिनों के अंदर क्लाइंट ऐप्लिकेशन को आईडी मिटा दिए जाने की सूचना देती हैं. जब तक Firebase, क्लाइंट ऐप्लिकेशन को सूचना नहीं देता, तब तक ऐप्लिकेशन की कुछ सेवाओं में कम फ़ंक्शन हो सकते हैं.

अगर आपको मौजूदा इंस्टेंस आईडी को मिटाकर नए और इंडिपेंडेंट आईडी के साथ Firebase की सेवाओं का तुरंत इस्तेमाल करना है, तो डेटा मिटाने के काम को मैनेज करने के लिए, ऊपर दिए गए किसी एक Client API का इस्तेमाल करें.

इंस्टेंस आईडी जनरेट करने की सुविधा बंद करें

इंस्टेंस आईडी का इस्तेमाल करने वाली सेवाएं, किसी ऐसे ऐप्लिकेशन में शुरू किए जाने पर अपने-आप एक नया आईडी जनरेट कर देती हैं जिसमें फ़िलहाल कोई आईडी नहीं है. आम तौर पर, आपका ऐप्लिकेशन लॉन्च होने पर, ये सेवाएं अपने-आप शुरू हो जाती हैं. इंस्टेंस आईडी जनरेट करने की सुविधा को बंद करने के लिए, आपको इसका इस्तेमाल करने वाली सेवाओं के लिए, अपने-आप शुरू होने की सुविधा को बंद करना होगा.

एक सामान्य तरीका यह है कि उपयोगकर्ताओं को डेटा कलेक्शन के लिए ऑप्ट-इन करने का विकल्प दें: इंस्टेंस आईडी का इस्तेमाल करने वाली सेवाओं के लिए, अपने-आप शुरू होने की सुविधा को बंद करें, एक ऐसा डायलॉग लागू करें जो उपयोगकर्ताओं से डेटा कलेक्शन के लिए, उनकी सहमति लेने का अनुरोध करे, और आपकी सहमति मिलने के बाद, सेवाओं को मैन्युअल तौर पर फिर से चालू करें.

नीचे दी गई गाइड पढ़ें और इंस्टेंस-आईडी इस्तेमाल करने वाली सेवाओं के लिए, अपने-आप शुरू होने की सुविधा को बंद करने का तरीका जानें. इसके बजाय, उन्हें मैन्युअल तरीके से शुरू करने का तरीका जानें: