ফায়ারবেস নিরাপত্তা নিয়ম পরিচালনা এবং স্থাপন করুন

Firebase আপনাকে আপনার Rules পরিচালনা করার জন্য বেশ কয়েকটি টুল সরবরাহ করে, প্রতিটি টুল বিশেষ ক্ষেত্রে কার্যকর এবং প্রতিটি টুল একই ব্যাকএন্ড Firebase Security Rules ম্যানেজমেন্ট API ব্যবহার করে।

এটি চালু করার জন্য কোন টুল ব্যবহার করা হোক না কেন, ম্যানেজমেন্ট API:

  • একটি নিয়ম উৎস গ্রহণ করে: নিয়মের একটি সেট, সাধারণত একটি কোড ফাইল যাতে Firebase Security Rules বিবৃতি থাকে।
  • একটি অপরিবর্তনীয় নিয়ম সেট হিসেবে গৃহীত উৎস সংরক্ষণ করে।
  • একটি রিলিজে প্রতিটি রুলসেটের স্থাপনার উপর নজর রাখে। ফায়ারবেস সিকিউরিটি রুলস-সক্ষম পরিষেবাগুলি একটি সুরক্ষিত রিসোর্সের জন্য প্রতিটি অনুরোধ মূল্যায়ন করার জন্য একটি প্রকল্পের রিলিজ অনুসন্ধান করে।
  • একটি নিয়ম সেটের সিনট্যাকটিক এবং শব্দার্থিক পরীক্ষা চালানোর ক্ষমতা প্রদান করে।

Firebase সিএলআই ব্যবহার করুন

Firebase CLI এর সাহায্যে আপনি স্থানীয় উৎস আপলোড করতে এবং রিলিজ স্থাপন করতে পারেন। CLI এর Firebase Local Emulator Suite আপনাকে উৎসের সম্পূর্ণ স্থানীয় পরীক্ষা করতে দেয়।

CLI ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশন কোডের মাধ্যমে আপনার নিয়মগুলিকে সংস্করণ নিয়ন্ত্রণে রাখতে পারবেন এবং আপনার বিদ্যমান স্থাপনা প্রক্রিয়ার অংশ হিসেবে নিয়মগুলি স্থাপন করতে পারবেন।

একটি কনফিগারেশন ফাইল তৈরি করুন

যখন আপনি Firebase CLI ব্যবহার করে আপনার Firebase প্রকল্পটি কনফিগার করেন, তখন আপনি আপনার প্রকল্প ডিরেক্টরিতে একটি .rules কনফিগারেশন ফাইল তৈরি করেন। আপনার Firebase প্রকল্পটি কনফিগার করা শুরু করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

Cloud Firestore

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

Realtime Database

// Set up Realtime Database in your project directory, creates a .rules file
firebase init database

Cloud Storage

// Set up Storage in your project directory, creates a .rules file
firebase init storage

আপনার নিয়ম সম্পাদনা এবং আপডেট করুন

.rules কনফিগারেশন ফাইলে সরাসরি আপনার নিয়মের উৎস সম্পাদনা করুন।

নিশ্চিত করুন যে Firebase CLI-তে আপনার করা যেকোনো সম্পাদনা Firebase কনসোলে প্রতিফলিত হচ্ছে, অথবা আপনি Firebase কনসোল অথবা Firebase CLI ব্যবহার করে ধারাবাহিকভাবে আপডেট করছেন। অন্যথায়, আপনি Firebase কনসোলে করা যেকোনো আপডেট ওভাররাইট করতে পারেন।

আপনার আপডেটগুলি পরীক্ষা করুন

Local Emulator Suite সমস্ত সিকিউরিটি রুলস-সক্ষম পণ্যের জন্য এমুলেটর সরবরাহ করে। প্রতিটি এমুলেটরের সিকিউরিটি রুলস ইঞ্জিন নিয়মের সিনট্যাকটিক এবং সিমেন্টিক উভয় মূল্যায়নই করে, এইভাবে সিকিউরিটি রুলস ম্যানেজমেন্ট এপিআই অফার করে এমন সিনট্যাকটিক পরীক্ষার চেয়েও বেশি।

যদি আপনি CLI এর সাথে কাজ করেন, তাহলে Firebase Security Rules পরীক্ষার জন্য Suite একটি চমৎকার টুল। স্থানীয়ভাবে আপনার আপডেটগুলি পরীক্ষা করতে Local Emulator Suite ব্যবহার করুন এবং নিশ্চিত করুন যে আপনার অ্যাপের Rules আপনার পছন্দের আচরণ প্রদর্শন করে।

আপনার আপডেটগুলি স্থাপন করুন

আপনার Rules আপডেট এবং পরীক্ষা করার পরে, উৎসগুলি প্রোডাকশনে স্থাপন করুন।

Cloud Firestore Security Rules জন্য, আপনার firebase.json ফাইলটি পর্যালোচনা এবং আপডেট করে .rules ফাইলগুলিকে আপনার ডিফল্ট এবং অতিরিক্ত নামযুক্ত ডাটাবেসের সাথে সংযুক্ত করুন।

আপনার Rules নির্বাচনীভাবে একা স্থাপন করতে নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন অথবা আপনার স্বাভাবিক স্থাপন প্রক্রিয়ার অংশ হিসাবে সেগুলি স্থাপন করুন।

Cloud Firestore

// Deploy rules for all databases configured in your firebase.json
firebase deploy --only firestore:rules
// Deploy rules for the specified database configured in your firebase.json firebase deploy --only firestore:<databaseId>

Realtime Database

// Deploy your .rules file
firebase deploy --only database

Cloud Storage

// Deploy your .rules file
firebase deploy --only storage

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

আপনি Rules সোর্সগুলি সম্পাদনা করতে পারেন এবং Firebase কনসোল থেকে রিলিজ হিসাবে সেগুলি স্থাপন করতে পারেন। Firebase কনসোল UI-তে সম্পাদনা করার সাথে সাথে সিনট্যাকটিক টেস্টিং করা হয় এবং Rules প্লেগ্রাউন্ড ব্যবহার করে সিমেন্টিক টেস্টিং পাওয়া যায়।

আপনার নিয়ম সম্পাদনা এবং আপডেট করুন

  1. Firebase কনসোলটি খুলুন এবং আপনার প্রকল্পটি নির্বাচন করুন।
  2. তারপর, পণ্য নেভিগেশন থেকে Realtime Database , Cloud Firestore বা স্টোরেজ নির্বাচন করুন, তারপর Rules এডিটরে নেভিগেট করতে রুলস এ ক্লিক করুন।
  3. আপনার নিয়মগুলি সরাসরি সম্পাদকে সম্পাদনা করুন।

আপনার আপডেটগুলি পরীক্ষা করুন

এডিটর UI-তে সিনট্যাক্স পরীক্ষা করার পাশাপাশি, আপনি আপনার প্রোজেক্টের ডাটাবেস এবং স্টোরেজ রিসোর্স ব্যবহার করে, সরাসরি Firebase কনসোলে, Rules Playground ব্যবহার করে semantic Rules আচরণ পরীক্ষা করতে পারেন। Rules এডিটরে Rules Playground স্ক্রিনটি খুলুন, সেটিংস পরিবর্তন করুন এবং Run এ ক্লিক করুন। এডিটরের উপরে নিশ্চিতকরণ বার্তাটি দেখুন।

আপনার আপডেটগুলি স্থাপন করুন

একবার আপনি যখন সন্তুষ্ট হন যে আপনার আপডেটগুলি আপনার প্রত্যাশা অনুযায়ী হয়েছে, তখন প্রকাশ করুন এ ক্লিক করুন।

অ্যাডমিন SDK ব্যবহার করুন

আপনি Node.js রুলসেটের জন্য Admin SDK ব্যবহার করতে পারেন। এই প্রোগ্রাম্যাটিক অ্যাক্সেসের মাধ্যমে, আপনি যা করতে পারবেন:

  • নিয়ম পরিচালনার জন্য কাস্টম টুল, স্ক্রিপ্ট, ড্যাশবোর্ড এবং CI/CD পাইপলাইন বাস্তবায়ন করুন।
  • একাধিক Firebase প্রকল্প জুড়ে আরও সহজে নিয়ম পরিচালনা করুন।

প্রোগ্রাম্যাটিকভাবে নিয়ম আপডেট করার সময়, আপনার অ্যাপের অ্যাক্সেস নিয়ন্ত্রণে অনিচ্ছাকৃত পরিবর্তন করা এড়ানো খুবই গুরুত্বপূর্ণ। নিরাপত্তার কথা মাথায় রেখে আপনার Admin SDK কোড লিখুন, বিশেষ করে নিয়ম আপডেট বা স্থাপন করার সময়।

আরেকটি গুরুত্বপূর্ণ বিষয় মনে রাখা উচিত যে, Firebase Security Rules রিলিজ সম্পূর্ণরূপে প্রচারিত হতে বেশ কয়েক মিনিট সময় নেয়। Admin SDK ব্যবহার করে নিয়ম স্থাপন করার সময়, রেস কন্ডিশন এড়িয়ে চলুন যেখানে আপনার অ্যাপ অবিলম্বে এমন নিয়মের উপর নির্ভর করে যার স্থাপনা এখনও সম্পূর্ণ হয়নি। যদি আপনার ব্যবহারের ক্ষেত্রে অ্যাক্সেস কন্ট্রোল নিয়মের জন্য ঘন ঘন আপডেটের প্রয়োজন হয়, তাহলে Cloud Firestore ব্যবহার করে সমাধান বিবেচনা করুন, যা ঘন ঘন আপডেট সত্ত্বেও রেস কন্ডিশন কমাতে ডিজাইন করা হয়েছে।

এই সীমাগুলিও মনে রাখবেন:

  • সিরিয়ালাইজ করার সময় নিয়মগুলি অবশ্যই UTF-8 এনকোডেড টেক্সটের 256 KiB এর চেয়ে ছোট হতে হবে।
  • একটি প্রকল্পে সর্বাধিক ২৫০০টি নিয়োগকৃত রুলসেট থাকতে পারে। এই সীমায় পৌঁছে গেলে, নতুন রুলসেট তৈরি করার আগে আপনাকে কিছু পুরাতন রুলসেট মুছে ফেলতে হবে।

Cloud Storage বা Cloud Firestore নিয়ম সেট তৈরি এবং স্থাপন করুন

Admin SDK মাধ্যমে নিরাপত্তা নিয়ম পরিচালনার জন্য একটি সাধারণ কর্মপ্রবাহে তিনটি পৃথক ধাপ অন্তর্ভুক্ত থাকতে পারে:

  1. একটি নিয়ম ফাইল উৎস তৈরি করুন (ঐচ্ছিক)
  2. একটি নিয়ম সেট তৈরি করুন
  3. নতুন নিয়ম সেটটি প্রকাশ করুন, অথবা স্থাপন করুন

SDK Cloud Storage এবং Cloud Firestore সুরক্ষা নিয়মের জন্য এই পদক্ষেপগুলিকে একটি একক API কলে একত্রিত করার একটি পদ্ধতি প্রদান করে। উদাহরণস্বরূপ:

    const source = `service cloud.firestore {
      match /databases/{database}/documents {
        match /carts/{cartID} {
          allow create: if request.auth != null && request.auth.uid == request.resource.data.ownerUID;
          allow read, update, delete: if request.auth != null && request.auth.uid == resource.data.ownerUID;
        }
      }
    }`;
    // Alternatively, load rules from a file
    // const fs = require('fs');
    // const source = fs.readFileSync('path/to/firestore.rules', 'utf8');

    await admin.securityRules().releaseFirestoreRulesetFromSource(source);

এই একই প্যাটার্ন releaseFirestoreRulesetFromSource() এর সাথে Cloud Storage নিয়মের জন্য কাজ করে।

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

    const rf = admin.securityRules().createRulesFileFromSource('firestore.rules', source);
    const rs = await admin.securityRules().createRuleset(rf);
    await admin.securityRules().releaseFirestoreRuleset(rs);

Realtime Database রুলসেট আপডেট করুন

Admin SDK ব্যবহার করে Realtime Database রুলসেট আপডেট করতে, admin.database এর getRules() এবং setRules() পদ্ধতি ব্যবহার করুন। আপনি JSON ফর্ম্যাটে অথবা মন্তব্য সহ স্ট্রিং হিসাবে রুলসেট পুনরুদ্ধার করতে পারেন।

একটি নিয়ম সেট আপডেট করতে:

    const source = `{
      "rules": {
        "scores": {
          ".indexOn": "score",
          "$uid": {
            ".read": "$uid == auth.uid",
            ".write": "$uid == auth.uid"
          }
        }
      }
    }`;
    await admin.database().setRules(source);

নিয়ম সেট পরিচালনা করুন

বৃহৎ রুলসেট পরিচালনা করতে সাহায্য করার জন্য, Admin SDK আপনাকে admin.securityRules().listRulesetMetadata দিয়ে বিদ্যমান সমস্ত নিয়ম তালিকাভুক্ত করতে দেয়। উদাহরণস্বরূপ:

    const allRulesets = [];
    let pageToken = null;
    while (true) {
      const result = await admin.securityRules().listRulesetMetadata(pageToken: pageToken);
      allRulesets.push(...result.rulesets);
      pageToken = result.nextPageToken;
      if (!pageToken) {
        break;
      }
    }

খুব বড় স্থাপনার ক্ষেত্রে, যা সময়ের সাথে সাথে ২৫০০ রুলসেট সীমায় পৌঁছে যায়, আপনি একটি নির্দিষ্ট সময় চক্রের সবচেয়ে পুরনো নিয়মগুলি মুছে ফেলার জন্য লজিক তৈরি করতে পারেন। উদাহরণস্বরূপ, ৩০ দিনের বেশি সময় ধরে স্থাপন করা সমস্ত রুলসেট মুছে ফেলার জন্য:

    const thirtyDays = new Date(Date.now() - THIRTY_DAYS_IN_MILLIS);
    const promises = [];
    allRulesets.forEach((rs) => {
      if (new Date(rs.createTime) < thirtyDays) {
        promises.push(admin.securityRules().deleteRuleset(rs.name));
      }
    });
    await Promise.all(promises);
    console.log(`Deleted ${promises.length} rulesets.`);

REST API ব্যবহার করুন

উপরে বর্ণিত টুলগুলি বিভিন্ন কর্মপ্রবাহের জন্য উপযুক্ত, যার মধ্যে রয়েছে আপনার প্রকল্পের একাধিক Cloud Firestore ডাটাবেসের জন্য Firebase Security Rules ম্যানেজমেন্ট, তবে আপনি ম্যানেজমেন্ট API ব্যবহার করেই Firebase Security Rules পরিচালনা এবং স্থাপন করতে চাইতে পারেন। ম্যানেজমেন্ট API আপনাকে সর্বাধিক নমনীয়তা দেয়।

এই সীমাগুলিও মনে রাখবেন:

  • সিরিয়ালাইজ করার সময় নিয়মগুলি অবশ্যই UTF-8 এনকোডেড টেক্সটের 256 KiB এর চেয়ে ছোট হতে হবে।
  • একটি প্রকল্পে সর্বাধিক ২৫০০টি নিয়োগকৃত রুলসেট থাকতে পারে। এই সীমায় পৌঁছে গেলে, নতুন রুলসেট তৈরি করার আগে আপনাকে কিছু পুরাতন রুলসেট মুছে ফেলতে হবে।

REST ব্যবহার করে Cloud Firestore বা Cloud Storage রুলসেট তৈরি এবং স্থাপন করুন

এই বিভাগের উদাহরণগুলিতে Firestore Rules ব্যবহার করা হয়েছে, যদিও এগুলি Cloud Storage Rules ক্ষেত্রেও প্রযোজ্য।

উদাহরণগুলিতে API কল করার জন্য cURL ব্যবহার করা হয়। প্রমাণীকরণ টোকেন সেট আপ এবং পাস করার ধাপগুলি বাদ দেওয়া হয়েছে। আপনি রেফারেন্স ডকুমেন্টেশনের সাথে ইন্টিগ্রেটেড API এক্সপ্লোরার ব্যবহার করে এই API নিয়ে পরীক্ষা করতে পারেন।

ম্যানেজমেন্ট এপিআই ব্যবহার করে একটি রুলসেট তৈরি এবং স্থাপনের জন্য সাধারণ পদক্ষেপগুলি হল:

  1. নিয়ম ফাইলের উৎস তৈরি করুন
  2. একটি নিয়ম সেট তৈরি করুন
  3. নতুন নিয়ম সেটটি প্রকাশ (স্থাপন) করুন।

একটি উৎস তৈরি করুন

ধরা যাক আপনি আপনার secure_commerce Firebase প্রকল্পে কাজ করছেন এবং আপনার প্রকল্পের east_store নামক একটি ডাটাবেসে লক-ডাউন Cloud Firestore Rules স্থাপন করতে চান।

আপনি এই নিয়মগুলি একটি firestore.rules ফাইলে প্রয়োগ করতে পারেন।

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

একটি নিয়ম সেট তৈরি করুন

এখন, এই ফাইলের জন্য একটি base64-এনকোডেড ফিঙ্গারপ্রিন্ট তৈরি করুন। তারপর আপনি এই ফাইলের সোর্স ব্যবহার করে projects.rulesets.create REST কল দিয়ে একটি রুলসেট তৈরি করার জন্য প্রয়োজনীয় পেলোড পূরণ করতে পারেন। এখানে, REST পেলোডে firestore.rules এর বিষয়বস্তু সন্নিবেশ করতে cat কমান্ড ব্যবহার করুন।

ট্র্যাকিংয়ের জন্য, এটি আপনার east_store ডাটাবেসের সাথে সংযুক্ত করতে, attachment_point east_store এ সেট করুন।

curl -X POST -d '{
  "source": {
    "files": [
      {
        "content": "' $(cat storage.rules) '",
        "name": "firestore.rules",
        "fingerprint": <sha fingerprint>
      },
    "attachment_point": "firestore.googleapis.com/databases/east_store"
    ]
  }
}' 'https://firebaserules.googleapis.com/v1/projects/secure_commerce/rulesets'

API একটি বৈধতা প্রতিক্রিয়া এবং একটি নিয়ম সেটের নাম প্রদান করে, উদাহরণস্বরূপ projects/secure_commerce/rulesets/uuid123

একটি নিয়ম সেট প্রকাশ (স্থাপন) করুন

যদি নিয়ম সেটটি বৈধ হয়, তাহলে চূড়ান্ত ধাপ হল একটি নামযুক্ত রিলিজে নতুন নিয়ম সেট স্থাপন করা।

curl -X POST -d '{
  "name": "projects/secure_commerce/releases/cloud.firestore/east_store"  ,
  "rulesetName": "projects/secure_commerce/rulesets/uuid123"
}' 'https://firebaserules.googleapis.com/v1/projects/secure_commerce/releases'

মনে রাখবেন যে Firebase Security Rules রিলিজগুলি সম্পূর্ণরূপে প্রচারিত হতে কয়েক মিনিট সময় নেয়। ম্যানেজমেন্ট REST API ব্যবহার করে স্থাপন করার সময়, এমন রেস পরিস্থিতি এড়াতে ভুলবেন না যেখানে আপনার অ্যাপ অবিলম্বে এমন নিয়মের উপর নির্ভর করে যার স্থাপনা এখনও সম্পূর্ণ হয়নি।

REST ব্যবহার করে Realtime Database রুলসেট আপডেট করুন

Realtime Database Rules পরিচালনার জন্য নিজস্ব REST ইন্টারফেস প্রদান করে। REST এর মাধ্যমে ফায়ারবেস Realtime Database Rules পরিচালনা দেখুন।

REST দিয়ে নিয়ম সেট পরিচালনা করুন

বৃহৎ নিয়ম স্থাপন পরিচালনা করতে সাহায্য করার জন্য, নিয়ম সেট এবং রিলিজ তৈরির জন্য একটি REST পদ্ধতি ছাড়াও, ব্যবস্থাপনা API নিম্নলিখিত পদ্ধতিগুলি প্রদান করে:

  • নিয়ম সেট তালিকাভুক্ত করুন, পান এবং মুছুন
  • নিয়ম প্রকাশের তালিকা তৈরি করুন, পান এবং মুছুন

খুব বড় স্থাপনার ক্ষেত্রে, যা সময়ের সাথে সাথে ২৫০০ রুলসেট সীমায় পৌঁছে যায়, আপনি একটি নির্দিষ্ট সময় চক্রের সবচেয়ে পুরনো নিয়ম মুছে ফেলার জন্য লজিক তৈরি করতে পারেন। উদাহরণস্বরূপ, ৩০ দিনের বেশি সময় ধরে স্থাপন করা সমস্ত রুলসেট মুছে ফেলার জন্য, আপনি projects.rulesets.list পদ্ধতিতে কল করতে পারেন, তাদের createTime কীগুলিতে Ruleset অবজেক্টের JSON তালিকা পার্স করতে পারেন, তারপর ruleset_id দ্বারা সংশ্লিষ্ট রুলসেটগুলিতে project.rulesets.delete কল করতে পারেন।

REST দিয়ে আপনার আপডেটগুলি পরীক্ষা করুন

অবশেষে, ম্যানেজমেন্ট API আপনাকে আপনার উৎপাদন প্রকল্পগুলিতে Cloud Firestore এবং Cloud Storage রিসোর্সে সিনট্যাকটিক এবং সিমেন্টিক পরীক্ষা চালানোর অনুমতি দেয়।

API-এর এই উপাদানটি ব্যবহার করে পরীক্ষা করা হয়:

  1. একটি TestSuite JSON অবজেক্টকে TestCase অবজেক্টের একটি সেট উপস্থাপন করার জন্য সংজ্ঞায়িত করা
  2. TestSuite জমা দেওয়া
  3. ফিরে আসা TestResult অবজেক্টগুলি পার্স করা হচ্ছে

আসুন একটি testcase.json ফাইলে একটি TestSuite TestCase সংজ্ঞায়িত করি। এই উদাহরণে, আমরা REST পেলোডের সাথে Rules ভাষা উৎস ইনলাইনে পাস করি, সেই নিয়মগুলিতে চালানোর জন্য টেস্ট স্যুটের পাশাপাশি। আমরা একটি Rules মূল্যায়ন প্রত্যাশা এবং ক্লায়েন্ট অনুরোধ নির্দিষ্ট করি যার বিরুদ্ধে নিয়ম সেট পরীক্ষা করা হবে। আপনি পরীক্ষার প্রতিবেদনটি কতটা সম্পূর্ণ তাও নির্দিষ্ট করতে পারেন, "FULL" মান ব্যবহার করে রিপোর্টে অন্তর্ভুক্ত করা উচিত এমন সমস্ত Rules ভাষার এক্সপ্রেশনের ফলাফল নির্দেশ করতে পারেন, যার মধ্যে অনুরোধের সাথে মেলেনি এমন এক্সপ্রেশনও অন্তর্ভুক্ত রয়েছে।

 {
  "source":
  {
    "files":
    [
      {
        "name": "firestore.rules",
        "content": "service cloud.firestore {
          match /databases/{database}/documents {
            match /users/{userId}{
              allow read: if (request.auth.uid == userId);
            }
            function doc(subpath) {
              return get(/databases/$(database)/documents/$(subpath)).data;
            }
            function isAccountOwner(accountId) {
              return request.auth.uid == accountId 
                  || doc(/users/$(request.auth.uid)).accountId == accountId;
            }
            match /licenses/{accountId} {
              allow read: if isAccountOwner(accountId);
            }
          }
        }"
      }
    ]
  },
  "testSuite":
  {
    "testCases":
    [
      {
        "expectation": "ALLOW",
        "request": {
           "auth": {"uid": "123"},
           "path": "/databases/(default)/documents/licenses/abcd",
           "method": "get"},
        "functionMocks": [
            {
            "function": "get",
            "args": [{"exact_value": "/databases/(default)/documents/users/123"}],
            "result": {"value": {"data": {"accountId": "abcd"}}}
            }
          ]
      }
    ]
  }
}

এরপর আমরা projects.test পদ্ধতি ব্যবহার করে মূল্যায়নের জন্য এই TestSuite জমা দিতে পারি।

curl -X POST -d '{
    ' $(cat testcase.json) '
}' 'https://firebaserules.googleapis.com/v1/projects/secure_commerce/rulesets/uuid123:test'

ফেরত পাঠানো TestReport (পরীক্ষার SUCCESS/FAILURE অবস্থা, ডিবাগ বার্তার তালিকা, পরিদর্শন করা নিয়মের এক্সপ্রেশনের তালিকা এবং তাদের মূল্যায়ন প্রতিবেদন সহ) SUCCESS অবস্থা নিশ্চিত করবে যে অ্যাক্সেস সঠিকভাবে অনুমোদিত।

ক্রস-সার্ভিস Cloud Storage Security Rules জন্য অনুমতিগুলি পরিচালনা করুন

যদি আপনি Cloud Storage Security Rules তৈরি করেন যা Cloud Firestore ডকুমেন্ট কন্টেন্ট ব্যবহার করে নিরাপত্তার অবস্থা মূল্যায়ন করে , তাহলে আপনাকে Firebase কনসোল বা Firebase CLI-তে দুটি পণ্য সংযোগ করার অনুমতি সক্ষম করার জন্য অনুরোধ করা হবে।

যদি আপনি এই ধরনের ক্রস-সার্ভিস নিরাপত্তা নিষ্ক্রিয় করার সিদ্ধান্ত নেন:

  1. প্রথমত, বৈশিষ্ট্যটি নিষ্ক্রিয় করার আগে, আপনার নিয়মগুলি সম্পাদনা করুন, Cloud Firestore অ্যাক্সেস করার জন্য Rules ফাংশন ব্যবহার করে এমন সমস্ত বিবৃতি সরিয়ে দিন। অন্যথায়, বৈশিষ্ট্যটি নিষ্ক্রিয় করার পরে, Rules মূল্যায়ন আপনার স্টোরেজ অনুরোধগুলি ব্যর্থ করবে।

  2. "Firebase Rules Firestore Service Agent" ভূমিকাটি মুছে ফেলার জন্য Google Cloud Console-এর IAM পৃষ্ঠাটি ব্যবহার করুন, ভূমিকা প্রত্যাহারের জন্য ক্লাউড নির্দেশিকা অনুসরণ করুন।

পরের বার যখন আপনি Firebase CLI অথবা Firebase কনসোল থেকে ক্রস-সার্ভিস রুলস সংরক্ষণ করবেন তখন আপনাকে বৈশিষ্ট্যটি পুনরায় সক্ষম করতে বলা হবে।