अंतिम-उपयोगकर्ता डेटा साफ़ करें और निर्यात करें

अपने उपयोगकर्ताओं को उनके डेटा को नियंत्रित करने में मदद करने के लिए, फायरबेस टीम ने एक लाइब्रेरी बनाई जो दो सामान्य उपयोगकर्ता डेटा प्रक्रियाओं को सरल बनाती है:

  • clearData : जब उपयोगकर्ता फायरबेस प्रमाणीकरण के माध्यम से अपना खाता हटाते हैं तो विशिष्ट फायरबेस सेवाओं (वर्तमान में रीयलटाइम डेटाबेस, फायरस्टोर और स्टोरेज) से उनका डेटा हटा देता है।

  • exportData : फायरबेस सेवाओं से उपयोगकर्ता के डेटा की एक प्रति JSON स्ट्रिंग में सहेजता है, और इसे क्लाउड स्टोरेज पर अपलोड करता है ताकि वे इसे आसानी से अपने लिए डाउनलोड कर सकें।

अपने ऐप में फ़ंक्शन जोड़ने का तरीका जानने के लिए पढ़ते रहें, या सीधे फायरबेस उपयोगकर्ता गोपनीयता GitHub रेपो पर कोड पर जाएं।

अपने ऐप में clearData या exportData जोड़ें

लाइब्रेरी में clearData और exportData फ़ंक्शन क्लाउड फ़ंक्शंस के रूप में कार्यान्वित किए जाते हैं जो रीयलटाइम डेटाबेस, क्लाउड स्टोरेज और क्लाउड फायरस्टोर में डेटा पर काम करते हैं। अपने स्वयं के ऐप में फ़ंक्शन जोड़ना तीन चरणों वाली प्रक्रिया है:

  1. अपने ऐप के रीयलटाइम डेटाबेस, क्लाउड फायरस्टोर और क्लाउड स्टोरेज स्कीमा को प्रतिबिंबित करने के लिए लाइब्रेरी की user_privacy.json फ़ाइल को संपादित करें।
  2. clearData और exportData क्लाउड फ़ंक्शंस के रूप में तैनात करें।
  3. अपने ऐप में फ़ंक्शन के लिए ट्रिगर लागू करें।
  4. भंडारण नियमों के साथ clearData डेटा सुरक्षित करें।

लाइब्रेरी की user_privacy.json फ़ाइल संपादित करें

आरंभ करने के लिए, फायरबेस उपयोगकर्ता गोपनीयता GitHub रेपो को क्लोन या डाउनलोड करें।

जब आप ऐसा कर लें, तो टेक्स्ट एडिटर में functions/user_privacy.json खोलें। JSON फ़ाइल में अनुकूलन योग्य पथों की एक श्रृंखला होती है जिसका उपयोग clearData और exportData फ़ंक्शन रीयलटाइम डेटाबेस, क्लाउड फायरस्टोर और क्लाउड स्टोरेज में आपके ऐप के डेटा को खोजने के लिए करते हैं। यदि आपका ऐप उनमें से केवल एक या दो सेवाओं का उपयोग करता है, तो अप्रयुक्त सेवाओं से जुड़े JSON ऑब्जेक्ट को हटाकर शुरुआत करें।

ऑब्जेक्ट के चले जाने पर, आप शेष सेवाओं के प्लेसहोल्डर मानों को आपके ऐप द्वारा उपयोग की जाने वाली वास्तविक डेटा संरचनाओं से बदलना शुरू कर सकते हैं।

उपयोगकर्ता डेटा में रीयलटाइम डेटाबेस पथ जोड़ें

अपने ऐप के रीयलटाइम डेटाबेस इंस्टेंस के लिए user_privacy.json अनुकूलित करने के लिए, "database" के अंतर्गत प्लेसहोल्डर स्ट्रिंग्स की सूची को उपयोगकर्ता डेटा के वास्तविक पथों से बदलें:

...
  "database": {
    "clear": [
      "/users/UID_VARIABLE",    // Replace with your
      "/admins/UID_VARIABLE"    // actual RTDB paths
    ],
    "export": [
      "/users/UID_VARIABLE",    // Replace with your
      "/admins/UID_VARIABLE"    // actual RTDB paths
    ]
  },
...

यदि आप अपने ऐप में केवल एक फ़ंक्शन जोड़ना चाहते हैं, तो आप इसे अपने डेटा से भरने के बजाय, अन्य फ़ंक्शन के ऑब्जेक्ट को हटा सकते हैं।

उपयोगकर्ता डेटा वाले क्लाउड फायरस्टोर ऑब्जेक्ट जोड़ें

अपने ऐप के क्लाउड फायरस्टोर इंस्टेंस के लिए user_privacy.json अनुकूलित करने के लिए, "firestore" के अंतर्गत प्लेसहोल्डर ऑब्जेक्ट की सूची को उपयोगकर्ता डेटा वाले वास्तविक क्लाउड फायरस्टोर ऑब्जेक्ट से बदलें:

...
  "firestore": {
    "clear": [
      {"collection": "users", "doc": "UID_VARIABLE", "field": "name"},
      {"collection": "users", "doc": "UID_VARIABLE"},    // Replace with your
      {"collection": "admins", "doc": "UID_VARIABLE"}    // actual Firestore paths
    ],
    "export": [
      {"collection": "users", "doc": "UID_VARIABLE", "field": "name"},
      {"collection": "users", "doc": "UID_VARIABLE"},    // Replace with your
      {"collection": "admins", "doc": "UID_VARIABLE"}    // actual Firestore paths
    ]
  },
...

यदि आप अपने ऐप में केवल एक फ़ंक्शन जोड़ना चाहते हैं, तो आप इसे अपने डेटा से भरने के बजाय, अन्य फ़ंक्शन के ऑब्जेक्ट को हटा सकते हैं।

उपयोगकर्ता डेटा के साथ क्लाउड स्टोरेज बकेट और फ़ाइल नाम जोड़ें

अपने ऐप के क्लाउड स्टोरेज इंस्टेंस के लिए user_privacy.json अनुकूलित करने के लिए, "storage" के अंतर्गत प्लेसहोल्डर स्टोरेज बकेट और फ़ाइल नाम को वास्तविक मानों से बदलें:

...
  "storage": {
    "clear": [    // Replace with your actual storage data
      ["clear-export.appspot.com", "UID_VARIABLE/sample_data.json"],
      ["clear-exportappspot.com", "UID_VARIABLE"]
    ],
    "export": [    // Replace with your actual storage data
      ["clear-export.appspot.com", "UID_VARIABLE/sample_data.json"]
    ]
  },
...

यदि आप अपने ऐप में केवल एक फ़ंक्शन जोड़ना चाहते हैं, तो आप इसे अपने डेटा से भरने के बजाय, अन्य फ़ंक्शन के ऑब्जेक्ट को हटा सकते हैं।

clearData और exportData क्लाउड फ़ंक्शंस के रूप में तैनात करें

यदि आप अभी तक क्लाउड फ़ंक्शंस से परिचित नहीं हैं, तो क्लाउड फ़ंक्शंस प्रारंभ करें मार्गदर्शिका में उनका उपयोग करने के तरीके के बारे में पढ़ें।

एक बार जब आप क्लाउड फ़ंक्शंस के साथ सहज हो जाएं, तो अपने प्रोजेक्ट में clearData और exportData फ़ंक्शंस जोड़ें:

  1. अपने अनुकूलित user_data.json अपनी functions निर्देशिका में कॉपी करें।
  2. उपयोगकर्ता गोपनीयता लाइब्रेरी के index.js से कोड को अपने प्रोजेक्ट के index.js में कॉपी करें।
    • यदि आप clearData उपयोग नहीं कर रहे हैं, तो clearData , clearDatabaseData , clearFirestoreData और clearStorageData फ़ंक्शन को छोड़ दें।
    • यदि आप exportData उपयोग नहीं कर रहे हैं, तो exportData , exportDatabaseData , exportFirestoreData और exportStorageData फ़ंक्शन को छोड़ दें।
  3. अपने कार्यों को तैनात करें.

clearData और exportData के लिए ट्रिगर लागू करें

प्रत्येक फ़ंक्शन के लिए एक अलग ट्रिगर की आवश्यकता होती है:

  • clearData : तब ट्रिगर होता है जब कोई उपयोगकर्ता प्रमाणीकरण के माध्यम से अपना खाता हटा देता है।
  • exportData : HTTP अनुरोध द्वारा ट्रिगर किया गया।

clearData ट्रिगर लागू करें

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

फिर, अपने प्लेटफ़ॉर्म के लिए प्रमाणीकरण एसडीके की delete विधि को लागू करने का एक तरीका जोड़ें:

आईओएस+

FirebaseAuth.User.delete { error in
  if let error = error {
    print("Error deleting user: \(error)")
  }
}

एंड्रॉयड

FirebaseAuth.getCurrentUser().delete();

वेब

firebase.auth().currentUser.delete().catch(function(error) {
  if (error.code === 'auth/requires-recent-login') {
    window.alert('Please sign-in and try again.');
    firebase.auth().signOut();
  }
});

एक exportData ट्रिगर लागू करें

exportData ट्रिगर लागू करने के लिए, अपने ऐप में एक बटन या लिंक जोड़ें जो HTTP अनुरोध के माध्यम से फ़ंक्शन को आमंत्रित करता है। HTTP अनुरोधों के माध्यम से कॉल फ़ंक्शंस में HTTP पर फ़ंक्शंस को लागू करने के बारे में और पढ़ें।

अनुरोध विवरण:

  • प्रकार: POST
  • यूआरएल: https://us-central1-<var>PROJECT-ID<.var>.cloudfunctions.net/exportData
  • मुख्य भाग: <var>CURRENT_USER'S_UID</var>

फ़ंक्शन को सीधे फ़ायरबेस होस्टिंग में प्रारंभ करें

यदि आपका ऐप फ़ायरबेस होस्टिंग पर होस्ट किया गया एक वेब ऐप है, तो आप साइट की firebase.json फ़ाइल में rewrite प्रविष्टि के माध्यम से अपने clearData फ़ंक्शन को लागू कर सकते हैं:

  "hosting": {
    "rewrites": [
       {"source": "/exportData", "function": "exportData"}
    ]
  }

भंडारण नियमों के साथ सुरक्षित exportData डेटा डेटा

अपने उपयोगकर्ताओं के निर्यात किए गए डेटा को निजी रखने के लिए, क्लाउड स्टोरेज नियम जोड़ें जो निर्यात करने वाले उपयोगकर्ता तक पहुंच को प्रतिबंधित करते हैं।

  1. फायरबेस कंसोल में स्टोरेज पर जाएं।
  2. नियम टैब खोलें.
  3. निम्नलिखित नियम चिपकाएँ, फिर प्रकाशित करें पर क्लिक करें:
service firebase.storage {
  match /b/{bucket}/o {
    match /exportData {
      // Only allow access to the user who requested the export
      match /{uid} {
        allow read, write: if request.auth.uid == uid
      }
      match /{uid}/{path=**} {
        allow read, write: if request.auth.uid == uid
      }
    }
    // Other application rules...
  }
}