Cloud Firestore নিরাপত্তা সংক্রান্ত নিয়ম ব্যবহার শুরু করা

Cloud Firestore Security Rules-এর মাধ্যমে, আপনি ইনফ্রাস্ট্রাকচার ম্যানেজ করা বা সার্ভার-সাইড যাচাইকরণ ও অনুমোদনের কোড লেখার ঝামেলা ছাড়াই, ব্যবহারকারীর জন্য দুর্দান্ত অভিজ্ঞতা তৈরি করার দিকে মনোযোগ দিতে পারবেন।

নিরাপত্তা সংক্রান্ত নিয়ম, অ্যাক্সেস কন্ট্রোল ও ডেটা যাচাইকরণের সুবিধা সহজ অথচ প্রকাশভঙ্গিমাপূর্ণ ফর্ম্যাটে প্রদান করে। ব্যবহারকারীর ডেটা সুরক্ষিত রাখতে, ব্যবহারকারী-ভিত্তিক এবং ভূমিকা-ভিত্তিক অ্যাক্সেস সিস্টেম তৈরি করতে, আপনাকে Cloud Firestore Security Rules-এর সাথে Firebase Authentication ব্যবহার করতে হবে।





AI-এর মাধ্যমে সহায়তা পেতে, নিচের প্রম্পটটি আপনার AI কোডিং এজেন্টে (যেমন, Android Studio-তে Gemini, Antigravity, Claude Code, Codex এবং Cursor) কপি করুন। আপনি প্রম্পট কাস্টমাইজ করতে এবং আপনার এজেন্টের সাথে আইটারেট করতে পারবেন। ইনস্টলেশন সংক্রান্ত বিস্তারিত তথ্যের জন্য Firebase এজেন্ট সংক্রান্ত দক্ষতা দেখুন।

Help me use Firebase in my app.
1. Make sure that **Firebase agent skills** are installed and updated. For Claude Code, Codex, or Cursor agents, help me install the Firebase plugin. For other agents, run `npx skills add firebase/agent-skills`. Always try to use **Firebase agent skills** for Firebase-related tasks.
2. Help me write, validate, and deploy Firebase Security Rules to protect my app's Firestore data.

নিরাপত্তা সংক্রান্ত নিয়মের ২ ভার্সন

মে ২০১৯ থেকে, Cloud Firestore নিরাপত্তা নিয়মের ২ ভার্সন এখন উপলভ্য। নিয়মের ২ নম্বর ভার্সন রিকার্সিভ ওয়াইল্ডকার্ড {name=**}-এর আচরণ পরিবর্তন করে। আপনি কালেকশন গ্রুপ কোয়েরি ব্যবহার করার পরিকল্পনা করলে, আপনাকে অবশ্যই ভার্সন ২ ব্যবহার করতে হবে। আপনার নিরাপত্তা নিয়মের প্রথম লাইনে rules_version = '2'; লিখে আপনাকে ভার্সন ২-এ অপ্ট-ইন করতে হবে:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {

লেখার নিয়ম

আপনার প্রোজেক্টের ডিফল্ট ডেটাবেস এবং প্রতিটি অতিরিক্ত ডেটাবেসের জন্য আপনি যে ডেটা মডেল তৈরি করেন, তার সাথে মানানসই Cloud Firestore Security Rules আপনি লিখবেন এবং ম্যানেজ করবেন।

সব Cloud Firestore Security Rules-এ match স্টেটমেন্ট থাকে, যা আপনার ডেটাবেসে ডকুমেন্ট শনাক্ত করে এবং allow এক্সপ্রেশন থাকে, যা এইসব ডকুমেন্টের অ্যাক্সেস কন্ট্রোল করে:

service cloud.firestore {
  match /databases/{database}/documents {
    match /<some_path>/ {
      allow read, write: if <some_condition>;
    }
  }
}

Cloud Firestore মোবাইল/ওয়েব ক্লায়েন্ট লাইব্রেরি থেকে আসা প্রতিটি ডেটাবেস অনুরোধ, কোনও ডেটা পড়া বা লেখার আগে, আপনার নিরাপত্তা সংক্রান্ত নিয়মের সাথে মিলিয়ে মূল্যায়ন করা হয়। নিয়ম অনুযায়ী নির্দিষ্ট করা কোনও ডকুমেন্ট পাথে অ্যাক্সেস প্রত্যাখ্যান করা হলে, সম্পূর্ণ অনুরোধটি বাতিল হয়ে যায়।

নিচে প্রাথমিক নিয়মের সেটের কিছু উদাহরণ দেওয়া হল। এইসব নিয়ম সঠিক হলেও, প্রোডাকশন অ্যাপ্লিকেশনের জন্য এগুলি সাজেস্ট করা হয় না:

যাচাইকরণ প্রয়োজন

// Allow read/write access on all documents to any user signed in to the application
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
    }
  }
}

সব প্রত্যাখ্যান করুন

// Deny read/write access to all users under any conditions
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

সবকটিতে অনুমতি দিন

// Allow read/write access to all users under any conditions
// Warning: **NEVER** use this rule set in production; it allows
// anyone to overwrite your entire database.
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

উপরের উদাহরণে ব্যবহৃত {document=**} পাথ সম্পূর্ণ ডেটাবেসের যেকোনও ডকুমেন্টের সাথে ম্যাচ করে। নির্দিষ্ট ডেটা পাথ কীভাবে ম্যাচ করতে হয় এবং হায়ারার্কিক্যাল ডেটা নিয়ে কীভাবে কাজ করতে হয় তা জানতে নিরাপত্তা সংক্রান্ত নিয়ম স্ট্রাকচার করা সংক্রান্ত নির্দেশিকা পড়া চালিয়ে যান।

নিয়ম পরীক্ষা করে দেখা হচ্ছে

Cloud Firestore একটি রুল সিমুলেটর প্রদান করে যা আপনি নিজের রুলসেট পরীক্ষা করার জন্য ব্যবহার করতে পারেন। আপনি Google Cloud কনসোল এবং Firebase কনসোল, দুটিতেই সিমুলেটর অ্যাক্সেস করতে পারবেন।

নিয়ম সিমুলেটর আপনাকে যাচাই করা এবং যাচাই না করা রিড, রাইট এবং ডিলিট সিমুলেট করতে দেয়। আপনি যাচাই করা অনুরোধ সিমুলেট করলে, বিভিন্ন পরিষেবা প্রদানকারীর থেকে যাচাইকরণ টোকেন তৈরি ও প্রিভিউ করতে পারবেন। সিমুলেটেড অনুরোধ আপনার এডিটরে থাকা রুলসেটের বিরুদ্ধে রান করে, আপনার ডিপ্লয় করা রুলসেটের বিরুদ্ধে নয়।

Google Cloud Console-এ নিয়ম পরীক্ষা করা

Google Cloud কনসোলে রুল সিমুলেটর, Standard এবং Enterprise, উভয় ভার্সনেই নেটিভ মোডে Firestore-এর জন্য উপলভ্য।

প্রয়োজনীয় অনুমতি

Google Cloud কনসোলে নিরাপত্তা সংক্রান্ত নিয়ম পরীক্ষা করতে, আপনার নিম্নলিখিত IAM অনুমতি থাকতে হবে:

  • firebaserules.rulesets.test

Google Cloud Console-এ ডেটাবেস অনুরোধ সিমুলেট করতে:

  1. Google Cloud কনসোলে, ডেটাবেস পৃষ্ঠায় যান।
  2. আপনি যে ডেটাবেস পরীক্ষা করতে চান সেটির আইডিতে ক্লিক করুন।
  3. নেভিগেশন মেনুতে, নিরাপত্তা বিকল্পে ক্লিক করুন।
  4. সিমুলেটর ট্যাবে ক্লিক করুন।
  5. সিমুলেশনের ধরন ড্রপ-ডাউন তালিকা থেকে, অপারেশনের ধরন বেছে নিন: পান, তৈরি করুন, আপডেট করুন অথবা মুছে দিন।
  6. লোকেশন ফিল্ডে, আপনি যে ডকুমেন্ট পাথ টেস্ট করতে চান সেটি লিখুন (যেমন, users/user_123)।
  7. (ঐচ্ছিক) তৈরি করুন এবং আপডেট করুন অনুরোধের জন্য, মক ডকুমেন্ট পেলোড কনফিগার করতে ডকুমেন্ট তৈরি করুন বিকল্পে ক্লিক করুন।
  8. (ঐচ্ছিক) যাচাই করা অনুরোধ সিমুলেট করতে, যাচাইকরণ চালু করুন, যাচাইকরণ প্রদানকারী (যেমন google.com বা Anonymous) বেছে নিন এবং টোকেন পেলোড ফিল্ড কনফিগার করুন।
  9. রান করুন বিকল্পে ক্লিক করুন।

মূল্যায়ন প্যানেল দেখায় যে অনুরোধটি অনুমোদিত বা প্রত্যাখ্যাত হয়েছে কিনা, মূল্যায়ন করা প্রতিটি শর্তের জন্য বিস্তারিত রিপোর্ট আইটেম এবং কোড এডিটরে লাইন-লেভেল হাইলাইট।

Firebase কনসোলে নিয়ম পরীক্ষা করুন

Firebase কনসোলে নিয়ম পরীক্ষা করতে, ডেটাবেস ও স্টোরেজ > Firestore > নিয়ম ট্যাব বিকল্পে যান। সিমুলেটর সেটিংস খুলতে নিয়ম প্লেগ্রাউন্ড বিকল্পে ক্লিক করুন, আপনার সিমুলেশন বিকল্প বেছে নিন এবং তারপরে রান করুন বিকল্পে ক্লিক করুন।

নিয়ম প্রয়োগ করা হচ্ছে

আপনার মোবাইল অ্যাপ থেকে Cloud Firestore ব্যবহার শুরু করার আগে, আপনাকে নিরাপত্তা সংক্রান্ত নিয়ম প্রয়োগ করতে হবে। আপনি Firebase কনসোল, Google Cloud কনসোল, Firebase CLI বা Cloud Firestore ম্যানেজমেন্ট REST API ব্যবহার করে নিয়ম প্রয়োগ করতে পারবেন।

Cloud Firestore Security Rules-এ করা আপডেট নতুন কোয়েরি ও লিসনারকে প্রভাবিত করতে এক মিনিট পর্যন্ত সময় নিতে পারে। তবে, পরিবর্তনগুলি সম্পূর্ণরূপে প্রচার করতে এবং কোনও অ্যাক্টিভ শ্রোতাকে প্রভাবিত করতে ১০ মিনিট পর্যন্ত সময় লাগতে পারে।

Firebase কনসোল ব্যবহার করা

আপনার প্রোজেক্টের ডিফল্ট ডেটাবেসের জন্য প্রথম সেট নিয়ম সেট-আপ ও ডেপ্লয় করতে, Firebase কনসোলের ডেটাবেস ও স্টোরেজ > Firestore > নিয়ম ট্যাব বিকল্পে যান।

আপনার প্রোজেক্টের জন্য একাধিক ডেটাবেস তৈরি করলে, আপনি প্রতিটি ডেটাবেসের জন্য Cloud Firestore Security Rules ডেপ্লয় করতে পারবেন। Firebase কনসোলে, ডিফল্ট ডেটাবেস এবং যেকোনও অতিরিক্ত ডেটাবেসের মধ্যে পরিবর্তন করতে ডেটাবেস সিলেক্টর ব্যবহার করুন।

অনলাইন এডিটরে আপনার নিয়ম লিখুন, তারপর প্রকাশ করুন বিকল্পে ক্লিক করুন।

Google Cloud Console ব্যবহার করা

আপনি সরাসরি Google Cloud কনসোল থেকে Cloud Firestore Security Rules ম্যানেজ ও ডিপ্লয় করতে পারবেন। নিয়ম এডিটর, স্ট্যান্ডার্ড ও এন্টারপ্রাইজ, উভয় ভার্সনেই নেটিভ মোডে Firestore-এর জন্য উপলভ্য।

প্রয়োজনীয় অনুমতি

Google Cloud কনসোলে নিরাপত্তা সংক্রান্ত নিয়ম ম্যানেজ ও ডিপ্লয় করতে, আপনার নিম্নলিখিত IAM অনুমতি প্রয়োজন:

  • firebaserules.releases.create
  • firebaserules.releases.delete
  • firebaserules.releases.update
  • firebaserules.rulesets.create
  • firebaserules.rulesets.delete
  • firebaserules.rulesets.list
  • firebaserules.rulesets.test (নিয়ম সিমুলেটর ব্যবহার করার জন্য প্রয়োজন)

Google Cloud কনসোলে নিয়ম প্রয়োগ করতে:

  1. Google Cloud কনসোলে, ডেটাবেস পৃষ্ঠায় যান।
  2. আপনি যে ডেটাবেস ম্যানেজ করতে চান সেটির আইডিতে ক্লিক করুন।
  3. নেভিগেশন মেনুতে, নিরাপত্তা বিকল্পে ক্লিক করুন।
  4. Firestore Rules ট্যাবে ক্লিক করুন।
  5. নিয়ম এডিটরে আপনার নিয়ম দেখুন। এডিট করতে, নতুন রুলসেট বা ক্লোন রুলসেট বিকল্পে ক্লিক করুন এবং তারপরে আপনার নিয়ম পরিবর্তন করুন।
  6. আপনার করা পরিবর্তন প্রয়োগ করতে প্রকাশ করুন বিকল্পে ক্লিক করুন।

এছাড়াও, আপনি টাইমলাইনে আগের রুলসেট দেখতে এবং সেগুলি ক্লোন বা রিস্টোর করতে পারবেন।

Firebase CLI ব্যবহার করুন

এছাড়াও, আপনি Firebase CLI ব্যবহার করে নিয়ম প্রয়োগ করতে পারবেন। CLI ব্যবহার করলে, আপনার অ্যাপ্লিকেশন কোডের সাথে ভার্সন কন্ট্রোলের অধীনে নিয়ম রাখতে এবং আপনার বর্তমান ডেপ্লয়মেন্ট প্রসেসের অংশ হিসেবে নিয়ম ডেপ্লয় করতে পারবেন।

// Set up Firestore in your project directory, creates a .rules file
firebase init firestore

// Edit the generated .rules file to your desired security rules
// ...

// Deploy rules for all configured databases
firebase deploy --only firestore

Cloud Storage-এর জন্য সুরক্ষা বাড়ান

আপনার অ্যাপ Cloud Firestore-এর শক্তিশালী ডেটাবেস ফিচার এবং Cloud Storage-এর ফাইল স্টোরেজ ও ম্যানেজমেন্ট ফিচার থেকে উপকৃত হবে। একসাথে ব্যবহার করা হলে, এই প্রোডাক্টগুলি অ্যাপের নিরাপত্তা আরও শক্তিশালী করে, কারণ Cloud Firestore দুটি প্রোডাক্টের জন্যই Firebase নিরাপত্তা নিয়মের মাধ্যমে ব্যবহারযোগ্য অনুমোদনের প্রয়োজনীয়তা ক্যাপচার করতে পারে। আরও জানতে, Cloud Storage-এর জন্য গাইড দেখুন।

পরবর্তী ধাপ