उपयोगकर्ता का डेटा मिटाएं एक्सटेंशन (delete-user-data
) की मदद से, Firebase प्रोजेक्ट से उपयोगकर्ता को मिटाने पर उसका डेटा भी मिटाया जा सकता है. इस एक्सटेंशन को कॉन्फ़िगर करके, उपयोगकर्ता का डेटा इनमें से किसी भी या सभी जगहों से मिटाया जा सकता है: Cloud Firestore, रीयलटाइम डेटाबेस या Cloud Storage. डेटा मिटाने के लिए, एक्सटेंशन का हर ट्रिगर, उपयोगकर्ता के UserId
में डाला जाता है.
यह एक्सटेंशन, उपयोगकर्ता की निजता बनाए रखने और ज़रूरी शर्तों का पालन करने में मदद करता है. हालांकि, इस एक्सटेंशन का इस्तेमाल करने से, यह गारंटी नहीं मिलती कि आपने सरकारी और इंडस्ट्री के नियमों का पालन किया है.
ज़रूरी शर्तें
अपने उपयोगकर्ताओं को मैनेज करने के लिए, आपको Firebase Authentication का इस्तेमाल करना होगा.
यह एक्सटेंशन सिर्फ़ Cloud Firestore, रीयलटाइम डेटाबेस, और Cloud Storage से डेटा मिटाता है. अगर आपने उपयोगकर्ता का डेटा किसी अन्य जगह पर सेव किया है, तो उपयोगकर्ताओं को मिटाते समय उन सोर्स से भी उपयोगकर्ता का डेटा मिटा देना चाहिए.
एक्सटेंशन इंस्टॉल करना
एक्सटेंशन इंस्टॉल करने के लिए, Firebase एक्सटेंशन इंस्टॉल करें पेज पर दिए गए निर्देशों का पालन करें. खास जानकारी के लिए, इनमें से कोई एक काम करें:
Firebase कंसोल: इस बटन पर क्लिक करें:
सीएलआई: यह कमांड चलाएं:
firebase ext:install firebase/delete-user-data --project=projectId-or-alias
एक्सटेंशन इंस्टॉल करने के दौरान, आपसे कई कॉन्फ़िगरेशन पैरामीटर की जानकारी देने के लिए कहा जाएगा:
Cloud Functions की जगह:
वह जगह चुनें जहां आपको इस एक्सटेंशन के लिए बनाए गए फ़ंक्शन डिप्लॉय करने हैं. आम तौर पर, आप अपने डेटाबेस के पास की जगह पाना चाहते हैं. जगह चुनने में मदद पाने के लिए, जगह चुनने की गाइड देखें.
Cloud Firestore के पाथ:
आपके क्लाउड Firestore इंस्टेंस में कौनसे पाथ उपयोगकर्ता के डेटा को शामिल करते हैं? अगर Cloud Firestore का इस्तेमाल नहीं किया जा रहा है, तो इसे खाली छोड़ दें. कॉमा लगाकर पूरे पाथ डालें. मिटाए गए उपयोगकर्ता के User-ID को
{UID}
से दिखाया जा सकता है. उदाहरण के लिए, अगर आपके पासusers
औरadmins
कलेक्शन हैं और हर कलेक्शन में दस्तावेज़ आईडी के तौर पर यूज़र आईडी वाले दस्तावेज़ हैं, तोusers/{UID},admins/{UID}
डाला जा सकता है.Cloud Firestore का मिटाने वाला मोड:
(यह सिर्फ़ तब लागू होगा, जब
Cloud Firestore paths
पैरामीटर का इस्तेमाल किया जा रहा हो.) आप Cloud Firestore के दस्तावेज़ों को कैसे मिटाना चाहते हैं? अगर आपको सब-कलेक्शन के दस्तावेज़ भी मिटाने हैं, तो इस पैरामीटर कोrecursive
पर सेट करें.रीयलटाइम डेटाबेस इंस्टेंस:
आपको रीयलटाइम डेटाबेस के किस इंस्टेंस से उपयोगकर्ता का डेटा मिटाना है?
रीयलटाइम डेटाबेस की जगह:
(यह सिर्फ़ तब लागू होता है, जब आपने
Realtime Database instance
पैरामीटर दिया हो.) आपको रीयलटाइम डेटाबेस की किस जगह से उपयोगकर्ता का डेटा मिटाना है?रीयलटाइम डेटाबेस पाथ:
आपके रीयलटाइम डेटाबेस इंस्टेंस में कौनसे पाथ उपयोगकर्ता के डेटा को शामिल करते हैं? अगर रीयलटाइम डेटाबेस का इस्तेमाल नहीं किया जा रहा है, तो इसे खाली छोड़ दें. कॉमा लगाकर पूरे पाथ डालें. मिटाए गए उपयोगकर्ता के User-ID को
{UID}
से दिखाया जा सकता है. उदाहरण के लिए:users/{UID},admins/{UID}
.Cloud Storage के पाथ:
आप Google Cloud Storage में उपयोगकर्ता का डेटा कहां सेव करते हैं? अगर Cloud Storage का इस्तेमाल नहीं किया जा रहा है, तो इसे खाली छोड़ दें. अपनी स्टोरेज बकेट में कॉमा लगाकर, फ़ाइलों या डायरेक्ट्री का पूरा पाथ डालें. मिटाए गए उपयोगकर्ता का User-ID दिखाने के लिए
{UID}
का इस्तेमाल करें और अपना डिफ़ॉल्ट स्टोरेज बकेट दिखाने के लिए{DEFAULT}
का इस्तेमाल करें.यहां कुछ उदाहरण दिए गए हैं:
- फ़ाइल के नाम रखने के स्कीम
{UID}-pic.png
वाली अपनी डिफ़ॉल्ट बकेट में मौजूद सभी फ़ाइलों को मिटाने के लिए,{DEFAULT}/{UID}-pic.png
डालें. my-app-logs
नाम वाली किसी दूसरी बकेट में मौजूद सभी फ़ाइलों को भी मिटाने के लिए,{DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt
डालें. इस बकेट में फ़ाइलों को{UID}-logs.txt
नाम वाले स्कीम के हिसाब से नाम दिया गया है.- उपयोगकर्ता आईडी वाले लेबल वाली डायरेक्ट्री और उसमें मौजूद सभी फ़ाइलों (जैसे,
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)
एक्सटेंशन को, मिटाने के लिए Firestore दस्तावेज़ों को अपने-आप खोजने की सुविधा देने के लिए, "अपने-आप खोजने की सुविधा चालू करें" कॉन्फ़िगरेशन पैरामीटर को "हां" पर सेट करें.
अपने-आप खोजने की सुविधा, डेटाबेस में अपने-आप जाकर उन कलेक्शन और दस्तावेज़ों को ढूंढती है जिन्हें आपके कॉन्फ़िगरेशन के मुताबिक मिटाना चाहिए. एक्सटेंशन, इन तरीकों से उन कलेक्शन और दस्तावेज़ों की पहचान करता है:
- सबसे पहले, एक्सटेंशन डेटाबेस में सभी रूट कलेक्शन ढूंढता है. अगर किसी कलेक्शन का आईडी, उपयोगकर्ता के यूआईडी से मेल खाता है, तो पूरा कलेक्शन मिटा दिया जाता है. "Cloud Firestore मिटाने के मोड" के लिए एक्सटेंशन के कॉन्फ़िगरेशन के आधार पर, डेटा को बार-बार मिटाया जाता है या सिर्फ़ एक बार.
- दूसरा, अगर कलेक्शन आईडी मेल नहीं खाता है, तो एक्सटेंशन किसी दस्तावेज़ की पहचान करने और उसे मिटाने की कोशिश करेगा. ऐसा तब होगा, जब उसका दस्तावेज़ आईडी, उपयोगकर्ता के यूआईडी से मेल खाए.
- आखिर में, हर दस्तावेज़ के लिए: a. अगर खोज की मौजूदा गहराई (नीचे देखें), कॉन्फ़िगर की गई खोज की गहराई से कम या उसके बराबर है, तो मौजूदा दस्तावेज़ के सभी सब-कलेक्शन के लिए यह प्रोसेस दोहराई जाएगी. b. अगर खोज फ़ील्ड कॉन्फ़िगर किए गए हैं, तो एक्सटेंशन यह जांच करेगा कि दिए गए फ़ील्ड, उपयोगकर्ता के यूआईडी से मैच करते हैं या नहीं. अगर कोई मैच मिलता है, तो दस्तावेज़ मिटा दिया जाएगा.
खोज गहराई
एक्सटेंशन में, खोज की गहराई की वैल्यू को कॉन्फ़िगर करने की सुविधा मिलती है. डिफ़ॉल्ट रूप से, यह वैल्यू 3 पर सेट होती है. ट्रैवर्सल सिर्फ़ तब लागू होगा, जब खोज की मौजूदा गहराई, कॉन्फ़िगर की गई खोज की गहराई से कम या उसके बराबर हो. खोज की मौजूदा डीपथ, मौजूदा कलेक्शन या दस्तावेज़ों के पैरंट कलेक्शन की डीपथ पर आधारित होती है. उदाहरण के लिए,
/users = 1
/users/<document-id> = 1
/users/<document-id>/comments = 2
/users/<document-id>/comments/<document-id> = 2
यह एक्सटेंशन, ऐरे या मैप में सेव किए गए यूआईडी को अपने-आप नहीं मिटाएगा. साथ ही, यह ऊपर बताई गई डेप्थ के बाद, नेस्ट किए गए सब-कलेक्शन में सेव किए गए यूज़र आईडी के हिसाब से डेटा नहीं खोजेगा.