ডিলিট ইউজার ডাটা এক্সটেনশন ব্যবহার করে

ব্যবহারকারীর ডেটা মুছে ফেলুন এক্সটেনশন ( delete-user-data ) আপনাকে আপনার Firebase প্রকল্প থেকে ব্যবহারকারীর ডেটা মুছে ফেলার সময় তার ডেটা মুছে ফেলতে দেয়। আপনি এই এক্সটেনশনটি নিম্নলিখিত যেকোনো বা সমস্ত থেকে ব্যবহারকারীর ডেটা মুছে ফেলার জন্য কনফিগার করতে পারেন: ক্লাউড ফায়ারস্টোর, রিয়েলটাইম ডেটাবেস, অথবা ক্লাউড স্টোরেজ। ডেটা মুছে ফেলার জন্য এক্সটেনশনের প্রতিটি ট্রিগার ব্যবহারকারীর UserId এর সাথে সংযুক্ত থাকে।

এই এক্সটেনশনটি ব্যবহারকারীর গোপনীয়তা রক্ষা এবং সম্মতির প্রয়োজনীয়তা পূরণের জন্য কার্যকর। তবে, এই এক্সটেনশনটি ব্যবহার করলে সরকার এবং শিল্পের নিয়মকানুন মেনে চলার নিশ্চয়তা পাওয়া যায় না।

পূর্বশর্ত

এক্সটেনশনটি ইনস্টল করুন

এক্সটেনশনটি ইনস্টল করতে, "ফায়ারবেস এক্সটেনশন ইনস্টল করুন" পৃষ্ঠার ধাপগুলি অনুসরণ করুন। সংক্ষেপে, নিম্নলিখিতগুলির মধ্যে একটি করুন:

এক্সটেনশনটি ইনস্টল করার সময়, আপনাকে বেশ কয়েকটি কনফিগারেশন প্যারামিটার নির্দিষ্ট করতে বলা হবে:

  • ক্লাউড ফাংশনের অবস্থান:

    এই এক্সটেনশনের জন্য তৈরি ফাংশনগুলি আপনি যেখানে স্থাপন করতে চান তার অবস্থান নির্বাচন করুন। আপনি সাধারণত আপনার ডাটাবেসের কাছাকাছি একটি অবস্থান চান। একটি অবস্থান নির্বাচন করতে সহায়তার জন্য, অবস্থান নির্বাচন নির্দেশিকাটি দেখুন।

  • ক্লাউড ফায়ারস্টোরের পথ:

    আপনার ক্লাউড ফায়ারস্টোর ইনস্ট্যান্সের কোন পাথে ব্যবহারকারীর ডেটা আছে? যদি আপনি ক্লাউড ফায়ারস্টোর ব্যবহার না করেন তবে খালি রাখুন। কমা দিয়ে আলাদা করে সম্পূর্ণ পাথ লিখুন। আপনি {UID} দিয়ে মুছে ফেলা ব্যবহারকারীর ব্যবহারকারী আইডি উপস্থাপন করতে পারেন। উদাহরণস্বরূপ, যদি আপনার সংগ্রহগুলি users এবং admins থাকে এবং প্রতিটি সংগ্রহে ব্যবহারকারী আইডি সহ ডকুমেন্ট থাকে যা ডকুমেন্ট আইডি হিসাবে থাকে, তাহলে আপনি users/{UID},admins/{UID} লিখতে পারেন।

  • ক্লাউড ফায়ারস্টোর ডিলিট মোড:

    (শুধুমাত্র প্রযোজ্য যদি আপনি Cloud Firestore paths প্যারামিটার ব্যবহার করেন।) আপনি কীভাবে ক্লাউড ফায়ারস্টোর ডকুমেন্ট মুছে ফেলতে চান? সাব-কালেকশনে ডকুমেন্ট মুছে ফেলার জন্য, এই প্যারামিটারটি recursive এ সেট করুন।

  • রিয়েলটাইম ডাটাবেস উদাহরণ:

    কোন রিয়েলটাইম ডাটাবেস ইনস্ট্যান্স থেকে আপনি ব্যবহারকারীর ডেটা মুছে ফেলতে চান?

  • রিয়েলটাইম ডাটাবেস অবস্থান:

    (শুধুমাত্র যদি আপনি Realtime Database instance প্যারামিটার প্রদান করেন তবেই প্রযোজ্য।) কোন রিয়েলটাইম ডেটাবেস অবস্থান থেকে আপনি ব্যবহারকারীর ডেটা মুছে ফেলতে চান?

  • রিয়েলটাইম ডাটাবেস পাথ:

    আপনার রিয়েলটাইম ডেটাবেস ইনস্ট্যান্সের কোন পাথে ব্যবহারকারীর ডেটা রয়েছে? রিয়েলটাইম ডেটাবেস ব্যবহার না করলে খালি রাখুন। কমা দিয়ে আলাদা করে সম্পূর্ণ পাথ লিখুন। আপনি {UID} দিয়ে মুছে ফেলা ব্যবহারকারীর ব্যবহারকারী আইডি উপস্থাপন করতে পারেন। উদাহরণস্বরূপ: users/{UID},admins/{UID}

  • ক্লাউড স্টোরেজ পাথ:

    গুগল ক্লাউড স্টোরেজে আপনি কোথায় ব্যবহারকারীর ডেটা সংরক্ষণ করেন? ক্লাউড স্টোরেজ ব্যবহার না করলে খালি রাখুন। আপনার স্টোরেজ বাকেটগুলিতে ফাইল বা ডিরেক্টরিগুলির সম্পূর্ণ পাথ লিখুন, কমা দ্বারা পৃথক করে। মুছে ফেলা ব্যবহারকারীর ব্যবহারকারী আইডি উপস্থাপন করতে {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 লিখুন।
    • একটি ব্যবহারকারী আইডি-লেবেলযুক্ত ডিরেক্টরি এবং এর সমস্ত ফাইল (যেমন media/{UID} ) মুছে ফেলতে, {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt,{DEFAULT}/media/{UID}

মুছে ফেলার জন্য ডেটা আবিষ্কার করা হচ্ছে

এই এক্সটেনশনটি মুছে ফেলার জন্য ডেটা আবিষ্কার করার জন্য কয়েকটি প্রক্রিয়া ব্যবহার করে। এক্সটেনশনটি ডেটা মুছে ফেলার জন্য এই প্রক্রিয়াগুলি স্পষ্টভাবে কনফিগার করতে হবে। এক্সটেনশনটি কেবলমাত্র সেই ডেটা মুছে ফেলবে যা প্রদত্ত প্রক্রিয়ার উপর ভিত্তি করে মুছে ফেলার জন্য স্পষ্টভাবে কনফিগার করা হয়েছে।

প্রতিটি পরিষেবার মধ্যে নিম্নলিখিত আচরণগত পার্থক্যগুলি সম্পর্কে সচেতন থাকুন:

  • ক্লাউড ফায়ারস্টোর: ডিফল্ট আচরণ হল একটি ডকুমেন্ট অগভীরভাবে মুছে ফেলা (উপ-সংগ্রহ মুছে ফেলা হবে না)। একটি ডকুমেন্টের সমস্ত উপ-সংগ্রহ পুনরাবৃত্তভাবে মুছে ফেলার জন্য, "ক্লাউড ফায়ারস্টোর ডিলিট মোড" বিকল্পটি "রিকার্সিভ" এ সেট করুন।
  • রিয়েলটাইম ডাটাবেস: নির্দিষ্ট নোডের সমস্ত ডেটা মুছে ফেলা হবে।
  • স্টোরেজ: যদি একটি ডিরেক্টরি পাথ নির্দিষ্ট করা থাকে, তাহলে সমস্ত ফাইল এবং সাব-ডিরেক্টরি মুছে ফেলা হবে।

পথ ধরে

ক্লাউড ফায়ারস্টোর, রিয়েলটাইম ডাটাবেস এবং ক্লাউড স্টোরেজ পাথ কনফিগার করার সময়, পাথগুলিতে একটি UID ভেরিয়েবল সংজ্ঞায়িত করা সম্ভব যা প্রমাণিত ব্যবহারকারীর UID দিয়ে প্রতিস্থাপিত হবে। যখন কোনও ব্যবহারকারী মুছে ফেলা হয়, তখন এক্সটেনশনটি প্রদত্ত পাথগুলিতে সেই UID-তে থাকা সমস্ত ডেটা মুছে ফেলবে, উদাহরণস্বরূপ:

  • ক্লাউড ফায়ারস্টোর পাথ(গুলি): users/{UID},admins/{UID}
  • রিয়েলটাইম ডাটাবেস পাথ(গুলি): likes/{UID}
  • ক্লাউড স্টোরেজ পাথ(গুলি): {DEFAULT}/uploads/{UID},{DEFAULT}/avatars/{UID}.jpeg

অটো ডিসকভারি (ক্লাউড ফায়ারস্টোর)

এক্সটেনশনটি স্বয়ংক্রিয়ভাবে ফায়ারস্টোর ডকুমেন্টগুলি মুছে ফেলার জন্য আবিষ্কার করতে সক্ষম করতে, "অটো ডিসকভারি সক্ষম করুন" কনফিগারেশন প্যারামিটারটি "হ্যাঁ" তে সেট করুন।

অটো-ডিসকভারি স্বয়ংক্রিয়ভাবে ডাটাবেস অতিক্রম করে সংগ্রহ এবং নথিগুলি খুঁজে বের করে যা আপনার কনফিগারেশন অনুসারে মুছে ফেলা উচিত। এক্সটেনশনটি নিম্নলিখিত পদ্ধতি ব্যবহার করে সেই সংগ্রহ এবং নথিগুলি সনাক্ত করে:

  1. প্রথমত, এক্সটেনশনটি ডাটাবেসে সমস্ত রুট সংগ্রহ খুঁজে বের করে। যদি কোনও সংগ্রহের আইডি ব্যবহারকারীর ইউআইডির সাথে মিলে যায়, তাহলে সম্পূর্ণ সংগ্রহটি মুছে ফেলা হয় (মুছে ফেলা হয় পুনরাবৃত্ত বা অগভীর, "ক্লাউড ফায়ারস্টোর ডিলিট মোড" এর জন্য এক্সটেনশনের কনফিগারেশনের উপর নির্ভর করে)।
  2. দ্বিতীয়ত, যদি সংগ্রহ আইডি মেলে না, তাহলে এক্সটেনশনটি একটি ডকুমেন্ট সনাক্ত করার এবং মুছে ফেলার চেষ্টা করবে যদি তার ডকুমেন্ট আইডি ব্যবহারকারীর ইউআইডির সাথে মেলে।
  3. পরিশেষে, প্রতিটি নথির জন্য: a. যদি বর্তমান অনুসন্ধানের গভীরতা (নীচে দেখুন) কনফিগার করা অনুসন্ধানের গভীরতার চেয়ে কম বা সমান হয়, তাহলে বর্তমান নথির সমস্ত উপ-সংগ্রহের জন্য প্রক্রিয়াটি পুনরাবৃত্তি করা হবে। b. যদি অনুসন্ধান ক্ষেত্রগুলি কনফিগার করা থাকে, তাহলে এক্সটেনশনটি পরীক্ষা করবে যে প্রদত্ত ক্ষেত্রগুলি ব্যবহারকারীর UID-এর সাথে মেলে কিনা। যদি কোনও মিল পাওয়া যায়, তাহলে নথিটি মুছে ফেলা হবে।

অনুসন্ধানের গভীরতা

এক্সটেনশনটি একটি কনফিগারযোগ্য অনুসন্ধান গভীরতার মান প্রদান করে (ডিফল্ট 3)। ট্র্যাভার্সাল কেবল তখনই কার্যকর করা হবে যদি বর্তমান অনুসন্ধান গভীরতা কনফিগার করা অনুসন্ধান গভীরতার চেয়ে কম বা সমান হয়। বর্তমান অনুসন্ধান গভীরতা বর্তমান সংগ্রহ বা নথির মূল সংগ্রহের গভীরতার উপর ভিত্তি করে তৈরি করা হয়, উদাহরণস্বরূপ।

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

এই এক্সটেনশনটি অ্যারে বা মানচিত্রে সংরক্ষিত UID গুলি স্বয়ংক্রিয়ভাবে মুছে ফেলবে না এবং এটি উপরে উল্লেখিত গভীরতার চেয়ে বেশি গভীরভাবে নেস্টেড উপ-সংগ্রহে সংরক্ষিত ব্যবহারকারী আইডি দ্বারা কী করা ডেটা অনুসন্ধান করবে না।