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

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

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

  • Analytics
  • Crashlytics
  • Cloud Messaging
  • Remote Config

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

इंस्टॉलेशन की पहचान करने के लिए इंस्टेंस आईडी का इस्तेमाल करने वाली सेवाएं, इन कामों के लिए भी कुंजी के तौर पर इनका इस्तेमाल करती हैं उस डिवाइस के साथ प्रासंगिक डेटा संबद्ध करें. उदाहरण के लिए, Crashlytics डिवाइस पर होने वाले क्रैश को रिकॉर्ड करने के लिए, Remote Config इंस्टेंस आईडी का इस्तेमाल करता है कॉन्फ़िगरेशन फ़ेच करने के लिए उन्हें हटा दिया जाता है और 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 का तुरंत इस्तेमाल करना है, तो नई, स्वतंत्र आईडी वाली सेवाओं के लिए, ऊपर दिए गए क्लाइंट API में से किसी एक का उपयोग मैनेज करने के लिए दी गई जानकारी मिटानी है.

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

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

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

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