'उपयोगकर्ता का डेटा मिटाएं' एक्सटेंशन का इस्तेमाल करना

उपयोगकर्ता का डेटा मिटाएं (delete-user-data) की मदद से, आपके Firebase प्रोजेक्ट ��े किसी उपयोगकर्ता के मिटाए जाने के बाद, उपयोगकर्ता का डेटा मिटाया जा सकता है. इस एक्सटेंशन को कॉन्फ़िगर करके, उपयोगकर्ता का डेटा मिटाया जा सकता है. यह डेटा, इनमें से किसी एक या सभी से जुड़ा है: Cloud Firestore, रीयलटाइम डेटाबेस या Cloud Storage. डेटा मिटाने के लिए एक्सटेंशन का हर ट्रिगर, उपयोगकर्ता के UserId से जुड़ा होता है.

यह एक्सटेंशन, उपयोगकर्ता की निजता का सम्मान करने और ज़रूरी शर्तों को पूरा करने के लिए फ़ायदेमंद है. हालांकि, इस एक्सटेंशन का इस्तेमाल करने का यह मतलब नहीं है कि सरकारी और उद्योग से जुड़े नियमों का पालन होगा.

ज़रूरी शर्तें

  • अपने उपयोगकर्ताओं को मैनेज करने के लिए, आपको Firebase से पुष्टि करने की सुविधा का इस्तेमाल करना होगा.

  • यह एक्सटेंशन सिर्फ़ Cloud Firestore, रीयलटाइम डेटाबेस, और Cloud Storage से डेटा मिटाता है. अगर उपयोगकर्ता के डेटा को किसी दूसरी जगह पर सेव किया जाता है, तो उपयोगकर्ताओं को मिटाते समय आपको उन सोर्स से भी उपयोगकर्ता का डेटा मिटाना चाहिए.

एक्सटेंशन इंस्टॉल करें

एक्सटेंशन इंस्टॉल करने के लिए, Firebase एक्सटेंशन इंस्टॉल करें पेज पर दिए गए चरणों का पालन करें. सारांश में, इनमें से कोई एक काम करें:

एक्सटेंशन ��ंस्टॉल करते समय, आपको कॉन्फ़िगरेशन पैरामीटर की संख्या बताने के लिए कहा जाएगा:

  • Cloud Functions की जगह:

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

  • Cloud Firestore के पाथ:

    आपके क्लाउड Firestore इंस्टेंस में कौनसे पाथ उपयोगकर्ता के डेटा को शामिल करते हैं? अगर आप Cloud Firestore का इस्तेमाल नहीं करते हैं, तो खाली छोड़ दें. पूरा पाथ डालें और उसे कॉमा लगाकर अलग करें. आप मिटाए गए उपयोगकर्ता का यूज़र आईडी दिखाने के लिए {UID} का इस्तेमाल कर सकते हैं. उदाहरण के लिए, अगर आपके पास users और admins कलेक्शन हैं और हर कलेक्शन में दस्तावेज़ आईडी के तौर पर यूज़र आईडी वाले दस्तावेज़ मौजूद हैं, तो users/{UID},admins/{UID} डाला जा सकता है.

  • Cloud Firestore का मिटाने वाला मोड:

    यह सिर्फ़ तब लागू होता है, जब Cloud Firestore paths पैरामीटर का इस्तेमाल किया जाता है. आप Cloud Firestore के दस्तावेज़ों को कैसे मिटाना चाहते हैं? अगर आपको सब-कलेक्शन से भी दस्तावेज़ मिटाने हैं, तो इस पैरामीटर को recursive पर सेट करें.

  • रीयल टाइम डेटाबेस इंस्टेंस:

    आपको उपयोगकर्ता का डेटा किस रीयलटाइम डेटाबेस इंस्टेंस से मिटाना है?

  • रीयल टाइम डेटाबेस की लोकेशन:

    (यह सिर्फ़ तब लागू होता है, जब आपने Realtime Database instance पैरामीटर दिया हो.) आपको उपयोगकर्ता का डेटा मिटाने के लिए, रीयल टाइम डेटाबेस की किस जगह से डेटा मिटाना है?

  • रीयल टाइम डेटाबेस पाथ:

    आपके रीयलटाइम डेटाबेस इंस्टेंस में कौनसे पाथ उपयोगकर्ता के डेटा को शामिल करते हैं? अगर रीयलटाइम डेटाबेस का इस्तेमाल नहीं किया जाता है, तो इसे खाली छोड़ दें. पूरा पाथ डालें और उसे कॉमा लगाकर अलग करें. आप मिटाए गए उपयोगकर्ता का यूज़र आईडी दिखाने के लिए {UID} का इस्तेमाल कर सकते हैं. उदाहरण के लिए: users/{UID},admins/{UID}.

  • Cloud Storage के पाथ:

    आप Google Cloud Storage में उपयोगकर्ता का डेटा कहां सेव करते हैं? अगर Cloud Storage का इस्तेमाल नहीं किया जाता है, तो फ़ील्ड को खाली छोड़ दें. अपने स्टोरेज बकेट में, कॉमा से अलग की गई फ़ाइलों या डायरेक्ट्री का पूरा पाथ डालें. मिटाए गए उपयोगकर्ता का यूज़र आईडी दिखाने के लिए {UID} का इस्तेमाल करें. साथ ही, अपना डिफ़ॉल्ट स्टोरेज बकेट दिखाने के लिए {DEFAULT} का इस्तेमाल करें.

    यहां उदाहरणों की एक सीरीज़ दी गई है:

    • फ़ाइल नामकरण स्कीम {UID}-pic.png वाली अपनी डिफ़ॉल्ट बकेट में सभी फ़ाइलें हटाने के लिए, {DEFAULT}/{UID}-pic.png डालें.
    • फ़ाइल नामकरण स्कीम {UID}-logs.txt वाली एक अन्य बकेट में सभी फ़ाइलें मिटाने के लिए, {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt डालें.my-app-logs
    • भी उपयोगकर्ता आईडी से लेब�� की गई डायरेक्ट्री और उसकी सभी फ़ाइलें (जैसे media/{UID}) मिटाने के लिए, {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt,{DEFAULT}/media/{UID} डालें.

मिटाए जाने वाले डेटा का पता लगाना

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

हर सेवा के व्यवहार में नीचे दिए गए अंतरों का ध्यान रखें:

  • Cloud Firestore: डिफ़ॉल्ट ऐक्शन यह है कि किसी दस्तावेज़ को थोड़ा-बहुत मिटाया जाए (सब-कलेक्शन नहीं मिटाए जाएंगे). किसी दस्तावेज़ के सभी सब-कलेक्शन को बार-बार मिटाने के लिए, "Cloud Firestore मिटाएं मोड" विकल्प को "बार-बार होने वाला" पर सेट करें.
  • रीयलटाइम डेटाबेस: बताए गए नोड पर मौजूद सारा डेटा मिटा दिया जाएगा.
  • स्टोरेज: अगर कोई डायरेक्ट्री पाथ दिया गया है, तो सभी फ़ाइलें और सब-डायरेक्ट्री मिटा दी जाएंगी.

पाथ के हिसाब से

Cloud Firestore, रीयलटाइम डेटाबेस, और Cloud Storage पाथ को कॉन्फ़िगर करते समय, पाथ में UID वैरिएबल तय किया जा सकता है. इसकी जगह, पुष्टि किए गए उपयोगकर्ता का यूआईडी लागू होगा. जब किसी उपयोगकर्ता को मिटाया जाता है, तो एक्सटेंशन दिए गए पाथ पर उस यूआईडी पर आधारित पूरा डेटा मिटा देगा. उदाहरण के लिए:

  • Cloud Firestore के पाथ: users/{UID},admins/{UID}
  • रीयलटाइम डेटाबेस पाथ: likes/{UID}
  • Cloud Storage के पाथ: {DEFAULT}/uploads/{UID},{DEFAULT}/avatars/{UID}.jpeg

ऑटो डिस्कवरी (Cloud Firestore)

"अपने-आप खोज की सुविधा चालू करें" कॉन्फ़िगरेशन पैरामीटर को "हां" पर सेट करें. इससे, Firebase दस्तावेज़ों को अपने-आप मिटाने के लिए एक्सटेंशन चालू हो जाएगा.

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

  1. सबसे पहले, एक्सटेंशन, डेटाबेस में सभी रूट कले����शन ���� ��ूंढत��� ��ै. ��गर किसी कलेक्शन का आईडी, उपयोगकर्ता के यूआईडी से मेल खाता है, तो पूरा कलेक्शन मिटा दिया जाता है. "Cloud Firestore मिटाने के मोड" के लिए एक्सटेंशन के कॉन्फ़िगरेशन के आधार पर, यह बार-बार या कम जानकारी वाला हो सकता है.
  2. साथ ही, अगर कलेक्शन आईडी मेल नहीं खाता है, तो एक्सटेंशन किसी दस्तावेज़ की पहचान करके उसे मिटाने की कोशिश करेगा. हालांकि, ऐसा तब ही होगा, जब दस्तावेज़ का आईडी, उपयोगकर्ता के यूआईडी से मेल खाता हो.
  3. आखिर में, हर दस्तावेज़ के लिए: a. अगर मौजूदा खोज गहराई (नीचे देखें) कॉन्फ़िगर की गई खोज गहराई से कम या उसके बराबर है, तो इस प्रक्रिया को मौजूदा दस्तावेज़ के सभी उप-संग्रह के लिए दोहराया जाएगा. b. अगर खोज फ़ील्ड कॉन्फ़िगर कर दिए गए हैं, तो एक्सटेंशन जांच करेगा कि दिए गए फ़ील्ड, उपयोगकर्ता के यूआईडी से मेल खाते हैं या नहीं. अगर ऐसा होता है, तो दस्तावेज़ मिटा दिया जाएगा.

खोज गहराई

एक्सटेंशन एक कॉन्फ़िगर किया जा सकने वाला खोज गहराई मान ऑफ़र करता है (डिफ़ॉल्ट रूप से यह 3 पर सेट होता है). ट्रैवर्सल को केवल तभी निष्पादित किया जाएगा, जब वर्तमान खोज गहराई, कॉन्फ़िगर की गई खोज गहराई से कम या उसके बराबर हो. खोज गहराई मौजूदा कलेक्शन या दस्तावेज़ों के पैरंट कलेक्शन की डेप्थ के हिसाब से होती है, उदाहरण के लिए

/users = 1
/users/<document-id> = 1
/users/<document-id>/comments = 2
/users/<document-id>/comments/<document-id> = 2

यह एक्सटेंशन, कलेक्शन या मैप में सेव किए गए यूआईडी को अपने-आप नहीं मिटाएगा. साथ ही, यह डेप्थ नेस्ट किए गए सब-कलेक्शन में सेव किए गए यूज़र आईडी के हिसाब से डेटा नहीं खोजेगा.