শেষ-ব্যবহারকারীর ডেটা সাফ এবং রপ্তানি করুন

আপনার ব্যবহারকারীদের তাদের ডেটা নিয়ন্ত্রণে সহায়তা করার জন্য, Firebase টিম একটি লাইব্রেরি তৈরি করেছে যা দুটি সাধারণ ব্যবহারকারীর ডেটা প্রক্রিয়া সহজ করে:

  • clearData : নির্দিষ্ট ফায়ারবেস পরিষেবা (বর্তমানে রিয়েলটাইম ডেটাবেস, ফায়ারস্টোর এবং স্টোরেজ) থেকে ব্যবহারকারীর ডেটা মুছে দেয় যখন তারা Firebase প্রমাণীকরণের মাধ্যমে তাদের অ্যাকাউন্ট মুছে দেয়।

  • exportData : ফায়ারবেস পরিষেবাগুলি থেকে ব্যবহারকারীর ডেটার একটি অনুলিপি একটি JSON স্ট্রিংয়ে সংরক্ষণ করে এবং ক্লাউড স্টোরেজে আপলোড করে যাতে তারা সহজেই এটি নিজের জন্য ডাউনলোড করতে পারে।

কীভাবে আপনার অ্যাপে ফাংশনগুলি যোগ করবেন তা জানতে পড়তে থাকুন বা Firebase ব্যবহারকারীর গোপনীয়তা GitHub রেপোতে সরাসরি কোডে প্রবেশ করুন।

আপনার অ্যাপে clearData বা exportData যোগ করুন

লাইব্রেরিতে clearData এবং exportData ফাংশনগুলি ক্লাউড ফাংশন হিসাবে প্রয়োগ করা হয় যা রিয়েলটাইম ডেটাবেস, ক্লাউড স্টোরেজ এবং ক্লাউড ফায়ারস্টোরে ডেটার উপর কাজ করে। আপনার নিজের অ্যাপে ফাংশন যোগ করা একটি তিন ধাপের প্রক্রিয়া:

  1. আপনার অ্যাপের রিয়েলটাইম ডেটাবেস, ক্লাউড ফায়ারস্টোর এবং ক্লাউড স্টোরেজ স্কিমা প্রতিফলিত করতে লাইব্রেরির user_privacy.json ফাইলটি সম্পাদনা করুন।
  2. ক্লাউড ফাংশন হিসাবে clearData এবং exportData স্থাপন করুন।
  3. আপনার অ্যাপে ফাংশনের জন্য ট্রিগার প্রয়োগ করুন।
  4. স্টোরেজ নিয়মের সাথে clearData ডেটা সুরক্ষিত করুন।

লাইব্রেরির user_privacy.json ফাইলটি সম্পাদনা করুন

শুরু করতে, Firebase ব্যবহারকারীর গোপনীয়তা 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 ইভেন্ট ট্রিগার করতে, আপনাকে প্রমাণীকরণ থেকে একটি পদ্ধতি ব্যবহার করতে হবে। আপনি যদি এখনও এটি না করে থাকেন, তাহলে আপনার অ্যাপে প্রমাণীকরণ যোগ করুন: Apple প্ল্যাটফর্ম , Android বা ওয়েব

তারপরে, আপনার প্ল্যাটফর্মের জন্য প্রমাণীকরণ SDK-এর delete পদ্ধতি চালু করার একটি উপায় যোগ করুন:

iOS+

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-তে ফাংশন আহ্বান করার বিষয়ে আরও পড়ুন।

বিস্তারিত অনুরোধ:

  • প্রকার: POST
  • URL: https://us-central1-<var>PROJECT-ID<.var>.cloudfunctions.net/exportData
  • মূল অংশ: <var>CURRENT_USER'S_UID</var>

ফায়ারবেস হোস্টিং-এ সরাসরি ফাংশনটি চালু করুন

যদি আপনার অ্যাপটি Firebase হোস্টিং-এ হোস্ট করা একটি ওয়েব অ্যাপ হয়, তাহলে আপনি সাইটের firebase.json ফাইলে একটি rewrite এন্ট্রির মাধ্যমে আপনার clearData ফাংশন চালু করতে পারেন:

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

স্টোরেজ নিয়ম সহ নিরাপদ exportData ডেটা

আপনার ব্যবহারকারীদের রপ্তানি করা ডেটা ব্যক্তিগত রাখতে, ক্লাউড স্টোরেজ নিয়মগুলি যোগ করুন যা রপ্তানিকারী ব্যবহারকারীর অ্যাক্সেস সীমাবদ্ধ করে৷

  1. Firebase কনসোলে স্টোরেজ দেখুন।
  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...
  }
}