उपयोगकर्ता डेटा हटाएँ एक्सटेंशन का उपयोग करना

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

यह एक्सटेंशन उपयोगकर्ता की गोपनीयता का सम्मान करने और अनुपालन आवश्यकताओं को पूरा करने के लिए उपयोगी है। हालाँकि, इस एक्सटेंशन का उपयोग सरकार और उद्योग नियमों के अनुपालन की गारंटी नहीं देता है।

आवश्यक शर्तें

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

एक्सटेंशन इंस्टॉल करने के लिए, इंस्टॉल फायरबेस एक्सटेंशन पेज पर दिए गए चरणों का पालन करें। संक्षेप में, निम्नलिखित में से कोई एक कार्य करें:

एक्सटेंशन की स्थापना के दौरान, आपको कई कॉन्फ़िगरेशन पैरामीटर निर्दिष्ट करने के लिए कहा जाएगा:

  • क्लाउड फ़ंक्शंस स्थान:

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

  • क्लाउड फायरस्टोर पथ:

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

  • क्लाउड फायरस्टोर डिलीट मोड:

    (केवल तभी लागू होता है जब आप Cloud Firestore paths पैरामीटर का उपयोग करते हैं।) आप क्लाउड फायरस्टोर दस्तावेज़ों को कैसे हटाना चाहते हैं? उपसंग्रहों में दस्तावेज़ों को हटाने के लिए, इस पैरामीटर को recursive पर सेट करें।

  • रीयलटाइम डेटाबेस उदाहरण:

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

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

    (केवल तभी लागू होता है जब आपने Realtime Database instance पैरामीटर प्रदान किया हो।) आप किस रीयलटाइम डेटाबेस स्थान से उपयोगकर्ता डेटा हटाना चाहते हैं?

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

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

  • क्लाउड स्टोरेज पथ:

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

    यहां उदाहरणों की एक श्रृंखला दी गई है:

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

हटाने के लिए डेटा की खोज

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

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

  • क्लाउड फायरस्टोर: डिफ़ॉल्ट व्यवहार किसी दस्तावेज़ को धीरे-धीरे हटाना है (उप-संग्रह नहीं हटाए जाएंगे)। किसी दस्तावेज़ के सभी उप-संग्रहों को पुनरावर्ती रूप से हटाने के लिए, "क्लाउड फायरस्टोर डिलीट मोड" विकल्प को "पुनरावर्ती" पर सेट करें।
  • रीयलटाइम डेटाबेस: निर्दिष्ट नोड पर सभी डेटा हटा दिया जाएगा।
  • संग्रहण: यदि कोई निर्देशिका पथ निर्दिष्ट है, तो सभी फ़ाइलें और उप-निर्देशिकाएँ हटा दी जाएंगी।

रास्ते से

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

  • क्लाउड फायरस्टोर पथ(पथ): users/{UID},admins/{UID}
  • रीयलटाइम डेटाबेस पथ: likes/{UID}
  • क्लाउड स्टोरेज पथ: {DEFAULT}/uploads/{UID},{DEFAULT}/avatars/{UID}.jpeg

ऑटो डिस्कवरी (क्लाउड फायरस्टोर)

हटाने के लिए फायरस्टोर दस्तावेज़ों को स्वचालित रूप से खोजने के लिए एक्सटेंशन को सक्षम करने के लिए, "ऑटो डिस्कवरी सक्षम करें" कॉन्फ़िगरेशन पैरामीटर को "हां" पर सेट करें।

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

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

गहराई खोजें

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

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

यह एक्सटेंशन सरणियों या मानचित्रों में संग्रहीत यूआईडी को स्वचालित रूप से नहीं हटाएगा, और यह ऊपर निर्दिष्ट गहराई से परे गहराई से नेस्टेड उपसंग्रहों में संग्रहीत उपयोगकर्ता आईडी द्वारा कुंजीबद्ध डेटा की खोज नहीं करेगा।