Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

আপনার ক্লাউড ফায়ারস্টোর সুরক্ষা বিধি পরীক্ষা করুন

আপনি যখন আপনার অ্যাপ তৈরি করছেন, আপনি আপনার ক্লাউড ফায়ারস্টোর ডাটাবেসের অ্যাক্সেস লক করতে চান। যাইহোক, আপনি চালু করার আগে, আপনার আরো সূক্ষ্ম ক্লাউড ফায়ারস্টোর নিরাপত্তা বিধি প্রয়োজন হবে। ক্লাউড Firestore এমুলেটর সঙ্গে, প্রোটোটাইপিং আপনার অ্যাপ্লিকেশনের পরীক্ষা ছাড়াও সাধারণ বৈশিষ্ট্য ও আচরণ , আপনি ইউনিট পরীক্ষা করে আপনার ক্লাউড Firestore সিকিউরিটি রুলস আচরণ পরীক্ষা লিখতে পারেন।

দ্রুত শুরু

সহজ নিয়ম কয়েকটি সাধারণ পরীক্ষার বিষয় জন্য, চেষ্টা দ্রুতশুরু নমুনা

ক্লাউড ফায়ারস্টোর সিকিউরিটি রুলস বুঝুন

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

ক্লাউড ফায়ারস্টোর সিকিউরিটি রুলস দুটি টুকরা অন্তর্ভুক্ত:

  1. একটি match বিবৃতি যে শনাক্ত আপনার ডাটাবেসের মধ্যে নথি।
  2. একটি allow অভিব্যক্তি নিয়ন্ত্রণ সেই নথি অ্যাক্সেস করুন।

ফায়ারবেস প্রমাণীকরণ ব্যবহারকারীদের শংসাপত্র যাচাই করে এবং ব্যবহারকারী-ভিত্তিক এবং ভূমিকা-ভিত্তিক অ্যাক্সেস সিস্টেমের ভিত্তি প্রদান করে।

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

ক্লাউড Firestore সিকিউরিটি রুলস সম্পর্কে আরো জানুন ক্লাউড Firestore সিকিউরিটি রুলস দিয়ে শুরু করুন

এমুলেটর ইনস্টল করুন

ক্লাউড Firestore এমুলেটর ইনস্টল করার জন্য, ব্যবহার Firebase CLI এবং নীচের কমান্ডটি প্রয়োগ করুন:

firebase setup:emulators:firestore

এমুলেটর চালান

আপনার ওয়ার্কিং ডিরেক্টরিতে একটি ফায়ারবেস প্রকল্প শুরু করে শুরু করুন। এটি একটি সাধারণ প্রথম পদক্ষেপ যখন Firebase CLI ব্যবহার

firebase init

নিম্নলিখিত কমান্ড ব্যবহার করে এমুলেটর শুরু করুন। আপনি প্রক্রিয়াটি শেষ না হওয়া পর্যন্ত এমুলেটর চলবে:

firebase emulators:start --only firestore

অনেক ক্ষেত্রে আপনি এমুলেটর চালু করতে চান, একটি টেস্ট স্যুট চালাতে চান এবং তারপর পরীক্ষা চালানোর পর এমুলেটর বন্ধ করে দিতে চান। আপনি সহজেই ব্যবহার করতে পারেন emulators:exec কমান্ড প্রয়োগ করুন:

firebase emulators:exec --only firestore "./my-test-script.sh"

শুরু হলে এমুলেটর একটি ডিফল্ট পোর্টে (8080) চালানোর চেষ্টা করবে। আপনি পরিবর্তন করে এমুলেটর পোর্ট পরিবর্তন করতে পারেন "emulators" আপনার বিভাগে firebase.json ফাইল:

{
  // ...
  "emulators": {
    "firestore": {
      "port": "YOUR_PORT"
    }
  }
}

আপনি এমুলেটর চালানোর আগে

আপনি এমুলেটর ব্যবহার শুরু করার আগে, নিম্নলিখিতগুলি মনে রাখবেন:

  • এমুলেটর প্রাথমিকভাবে নিয়ম উল্লেখিত লোড করা হবে firestore.rules আপনার ক্ষেত্রে firebase.json ফাইল। এটি আপনার ক্লাউড ফায়ারস্টোর সিকিউরিটি রুলস সম্বলিত একটি স্থানীয় ফাইলের নাম প্রত্যাশা করে এবং সমস্ত প্রজেক্টে সেই নিয়মগুলি প্রয়োগ করে। আপনি স্থানীয় ফাইল পাথ সরবরাহ না করেন তাহলে বা ব্যবহার loadFirestoreRules যেমন নীচে বর্ণিত পদ্ধতি, এমুলেটর একইরূপে খোলা নিয়ম থাকার হিসাবে সব প্রকল্প।
  • যদিও অধিকাংশ Firebase SDK আছে emulators সঙ্গে কাজ সরাসরি, শুধুমাত্র @firebase/rules-unit-testing গ্রন্থাগার উপহাস সমর্থন auth সিকিউরিটি রুলস এ, ইউনিট পরীক্ষা অনেক সহজ করে। উপরন্তু, লাইব্রেরি কয়েকটি এমুলেটর-নির্দিষ্ট বৈশিষ্ট্য সমর্থন করে যেমন সমস্ত ডেটা সাফ করা, যেমন নীচে তালিকাভুক্ত।
  • এমুলেটরগুলি ক্লায়েন্ট এসডিকে -র মাধ্যমে প্রদত্ত ফায়ারবেস অথ টোকেনগুলি গ্রহণ করবে এবং সেই অনুযায়ী নিয়ম মূল্যায়ন করবে, যা ইন্টিগ্রেশন এবং ম্যানুয়াল পরীক্ষায় সরাসরি আপনার অ্যাপ্লিকেশনগুলিকে এমুলেটরগুলির সাথে সংযুক্ত করতে দেয়।

স্থানীয় ইউনিট পরীক্ষা চালান

V9 জাভাস্ক্রিপ্ট এসডিকে দিয়ে স্থানীয় ইউনিট পরীক্ষা চালান

ফায়ারবেস একটি সিকিউরিটি রুলস ইউনিট টেস্টিং লাইব্রেরি বিতরণ করে যার সংস্করণ 9 জাভাস্ক্রিপ্ট এসডিকে এবং এর সংস্করণ 8 এসডিকে। লাইব্রেরি API গুলি উল্লেখযোগ্যভাবে ভিন্ন। আমরা v9 টেস্টিং লাইব্রেরির সুপারিশ করি, যা আরও সুশৃঙ্খল এবং এমুলেটরগুলির সাথে সংযোগ স্থাপনের জন্য কম সেটআপের প্রয়োজন এবং এইভাবে উৎপাদন সম্পদের দুর্ঘটনাক্রমে ব্যবহার এড়ানো। পিছন সামঞ্জস্য জন্য, আমরা করতে অগ্রসর V8 পরীক্ষামূলক গ্রন্থাগার প্রাপ্তিসাধ্য

ব্যবহার করুন @firebase/rules-unit-testing এমুলেটর যে রান স্থানীয়ভাবে সাথে যোগাযোগ করার জন্য মডিউল। আপনি সময় সমাপ্ত বা পেলে ECONNREFUSED ত্রুটি, দুবার-যাচাই করুন যে এমুলেটর আসলে চলছে।

আমরা দৃঢ়ভাবে তাই আপনি ব্যবহার করতে পারেন Node.js এর সর্বশেষ সংস্করণটি ব্যবহার করার প্রস্তাব async/await স্বরলিপি। আপনি যে আচরণটি পরীক্ষা করতে চাইতে পারেন তার প্রায় সবগুলিই অ্যাসিঙ্ক্রোনাস ফাংশন অন্তর্ভুক্ত করে এবং পরীক্ষার মডিউলটি প্রতিশ্রুতি-ভিত্তিক কোডের সাথে কাজ করার জন্য ডিজাইন করা হয়েছে।

V9 রুলস ইউনিট টেস্টিং লাইব্রেরি সবসময় এমুলেটর সম্পর্কে সচেতন থাকে এবং কখনই আপনার উৎপাদন সম্পদ স্পর্শ করে না।

আপনি v9 মডুলার আমদানি বিবৃতি ব্যবহার করে লাইব্রেরি আমদানি করেন। উদাহরণ স্বরূপ:

import {
  assertFails,
  assertSucceeds,
  initializeTestEnvironment,
  RulesTestEnvironment,
} from "@firebase/rules-unit-testing"

// Use `const { … } = require("@firebase/rules-unit-testing")` if imports are not supported
// Or we suggest `const testing = require("@firebase/rules-unit-testing")` if necessary.

একবার আমদানি করা হলে, ইউনিট পরীক্ষা বাস্তবায়নের সাথে জড়িত:

  • নির্মাণ ও একটি কনফিগার RulesTestEnvironment একটি কল সঙ্গে initializeTestEnvironment
  • বিধি triggering, একটি সুবিধা পদ্ধতি যে তাদের বাইপাস সাময়িকভাবে আপনি করতে পারবেন ব্যবহার না করেই টেস্ট ডেটার সেট আপ হচ্ছে, RulesTestEnvironment.withSecurityRulesDisabled
  • পরীক্ষা স্যুট আপ এবং প্রতি-পরীক্ষার আগে / কলের মাধ্যমে আঙ্গুলসমূহ পর টেস্ট ডেটার ও পরিবেশ, মত পরিষ্কার করতে সেট RulesTestEnvironment.cleanup() বা RulesTestEnvironment.clearFirestore()
  • পরীক্ষার বিষয় যে ব্যবহার অনুকরণমূলক প্রমাণীকরণ রাজ্যের বাস্তবায়নকারী RulesTestEnvironment.authenticatedContext এবং RulesTestEnvironment.unauthenticatedContext

সাধারণ পদ্ধতি এবং ইউটিলিটি ফাংশন

আরো দেখুন V9 SDK এর মধ্যে এমুলেটর-নির্দিষ্ট পরীক্ষা পদ্ধতি

initializeTestEnvironment() => RulesTestEnvironment

এই ফাংশন নিয়ম ইউনিট পরীক্ষার জন্য একটি পরীক্ষার পরিবেশ শুরু করে। পরীক্ষা সেটআপের জন্য প্রথমে এই ফাংশনটি কল করুন। সফল এক্সিকিউশনের জন্য এমুলেটরগুলি চলতে হবে।

ফাংশন একটি সংজ্ঞা একটি ঐচ্ছিক বস্তুর গ্রহণ TestEnvironmentConfig , যা একটি প্রকল্প আইডি এবং এমুলেটর কনফিগারেশন সেটিংস গঠিত হতে পারে।

let testEnv = await initializeTestEnvironment({
  projectId: "demo-project-1234",
  firestore: {
    rules: fs.readFileSync("firestore.rules", "utf8"),
  },
});

RulesTestEnvironment.authenticatedContext({ user_id: string, tokenOptions?: TokenOptions }) => RulesTestContext

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

কোন এমুলেটর কনফিগার সহ কনফিগার দৃষ্টান্ত, অ্যাক্সেস করতে আপনার টেস্টে ফিরে পরীক্ষা প্রসঙ্গ অবজেক্ট ব্যবহার initializeTestEnvironment

// Assuming a Firestore app and the Firestore emulator for this example
import { setDoc } from "firebase/firestore";

const alice = testEnv.authenticatedContext("alice", { … });
// Use the Firestore instance associated with this context
await assertSucceeds(setDoc(alice.firestore(), '/users/alice'), { ... });

RulesTestEnvironment.unauthenticatedContext() => RulesTestContext

এই পদ্ধতি একটি সৃষ্টি RulesTestContext , যা একটি ক্লায়েন্ট যে প্রমাণীকরণ মাধ্যমে নেই লগ করা হয় মত আচরণ করে। ফিরে আসা প্রসঙ্গের মাধ্যমে তৈরি অনুরোধগুলিতে Firebase Auth টোকেন সংযুক্ত থাকবে না।

কোন এমুলেটর কনফিগার সহ কনফিগার দৃষ্টান্ত, অ্যাক্সেস করতে আপনার টেস্টে ফিরে পরীক্ষা প্রসঙ্গ অবজেক্ট ব্যবহার initializeTestEnvironment

// Assuming a Cloud Storage app and the Storage emulator for this example
import { getStorage, ref, deleteObject } from "firebase/storage";

const alice = testEnv.unauthenticatedContext();

// Use the Cloud Storage instance associated with this context
const desertRef = ref(alice.storage(), 'images/desert.jpg');
await assertSucceeds(deleteObject(desertRef));

RulesTestEnvironment.withSecurityRulesDisabled()

একটি প্রেক্ষাপটের সাথে একটি পরীক্ষা সেটআপ ফাংশন চালান যা আচরণ করে যেন নিরাপত্তা বিধি নিষ্ক্রিয় করা হয়।

এই পদ্ধতি একটি কলব্যাক ফাংশন নেয়, যা নিরাপত্তা-নিয়ম-বাইপাসিং প্রসঙ্গ নেয় এবং একটি প্রতিশ্রুতি প্রদান করে। প্রতিশ্রুতি সমাধান / প্রত্যাখ্যান করলে প্রসঙ্গটি ধ্বংস হয়ে যাবে।

RulesTestEnvironment.cleanup()

এই পদ্ধতি সব ধ্বংস করে RulesTestContexts পরীক্ষা পরিবেশে নির্মিত এবং অন্তর্নিহিত সম্পদ আপ সাফ করে, এক শুদ্ধ প্রস্থান অনুমতি দেয়।

এই পদ্ধতিটি কোনভাবেই এমুলেটরদের অবস্থা পরিবর্তন করে না। পরীক্ষার মধ্যে ডেটা পুনরায় সেট করতে, অ্যাপ্লিকেশন এমুলেটর-নির্দিষ্ট পরিষ্কার ডেটা পদ্ধতি ব্যবহার করুন।

assertSucceeds(pr: Promise<any>)) => Promise<any>

এটি একটি টেস্ট কেস ইউটিলিটি ফাংশন।

ফাংশনটি দাবি করে যে সরবরাহিত প্রতিশ্রুতি একটি এমুলেটর অপারেশন মোড়ানো কোন সুরক্ষা বিধি লঙ্ঘন ছাড়া সমাধান করা হবে।

await assertSucceeds(setDoc(alice.firestore(), '/users/alice'), { ... });

assertFails(pr: Promise<any>)) => Promise<any>

এটি একটি টেস্ট কেস ইউটিলিটি ফাংশন।

ফাংশনটি দাবি করে যে সরবরাহ করা প্রতিশ্রুতি একটি এমুলেটর অপারেশন মোড়ানো একটি নিরাপত্তা বিধি লঙ্ঘনের সাথে প্রত্যাখ্যাত হবে।

await assertFails(setDoc(alice.firestore(), '/users/bob'), { ... });

এমুলেটর-নির্দিষ্ট পদ্ধতি

আরো দেখুন সাধারণ পরীক্ষা পদ্ধতি এবং V9 SDK এর মধ্যে ইউটিলিটি ফাংশন

RulesTestEnvironment.clearFirestore() => Promise<void>

এই পদ্ধতি Firestore ডাটাবেসের যে জন্যে ডাটা মুছে ফেলা হবে projectId Firestore এমুলেটর জন্য কনফিগার।

RulesTestContext.firestore(settings?: Firestore.FirestoreSettings) => Firestore;

এই পদ্ধতিটি এই পরীক্ষার প্রসঙ্গের জন্য একটি ফায়ারস্টোর উদাহরণ পায়। ফিরে আসা Firebase JS ক্লায়েন্ট SDK উদাহরণ ক্লায়েন্ট SDK APIs (v9 মডুলার বা v9 কম্প্যাট) ব্যবহার করা যেতে পারে।

নিয়ম মূল্যায়ন ভিজ্যুয়ালাইজ করুন

ক্লাউড ফায়ারস্টোর এমুলেটর আপনাকে ফায়ারবেস সিকিউরিটি রুলসের মূল্যায়ন ট্রেসিং সহ এমুলেটর স্যুট UI- এ ক্লায়েন্টের অনুরোধগুলি কল্পনা করতে দেয়।

প্রতিটি অনুরোধের জন্য বিস্তারিত মূল্যায়ন ক্রম দেখতে Firestore> অনুরোধগুলি ট্যাব খুলুন।

ফায়ারস্টোর এমুলেটর মনিটরের অনুরোধ করে নিরাপত্তা বিধি মূল্যায়ন দেখায়

পরীক্ষার রিপোর্ট তৈরি করুন

পরীক্ষার একটি স্যুট চালানোর পরে, আপনি পরীক্ষার কভারেজ রিপোর্টগুলি অ্যাক্সেস করতে পারেন যা দেখায় যে আপনার প্রতিটি নিরাপত্তা বিধি কীভাবে মূল্যায়ন করা হয়েছিল।

রিপোর্ট পেতে, এমুলেটর চলমান অবস্থায় একটি এক্সপোজড এন্ডপয়েন্ট জিজ্ঞাসা করুন। একটি ব্রাউজার-বান্ধব সংস্করণের জন্য, নিম্নলিখিত URL টি ব্যবহার করুন:

http://localhost:8080/emulator/v1/projects/<project_id>:ruleCoverage.html

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

http://localhost:8080/emulator/v1/projects/<project_id>:ruleCoverage

এমুলেটর এবং উৎপাদনের মধ্যে পার্থক্য

  1. আপনাকে স্পষ্টভাবে ক্লাউড ফায়ারস্টোর প্রকল্প তৈরি করতে হবে না। এমুলেটর অ্যাক্সেস করা যেকোনো দৃষ্টান্ত স্বয়ংক্রিয়ভাবে তৈরি করে।
  2. ক্লাউড ফায়ারস্টোর এমুলেটর স্বাভাবিক ফায়ারবেস প্রমাণীকরণ প্রবাহের সাথে কাজ করে না। পরিবর্তে, Firebase টেস্ট SDK এর, আমরা প্রদান করে initializeTestApp() পদ্ধতি rules-unit-testing গ্রন্থাগার, যা একটি লাগে auth ক্ষেত্র। এই পদ্ধতি ব্যবহার করে তৈরি ফায়ারবেস হ্যান্ডেলটি এমনভাবে আচরণ করবে যেন এটি আপনার দেওয়া যেকোনো সত্তা হিসাবে সফলভাবে প্রমাণিত হয়েছে। আপনি মধ্যে পাস যদি null , এটি একটি অবিশ্বস্ত ব্যবহারকারী হিসাবে আচরণ করবে ( auth != null নিয়ম উদাহরণস্বরূপ ব্যর্থ হবে)।

পরিচিত সমস্যাগুলির সমাধান করুন

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

পরীক্ষার আচরণ অসঙ্গত

যদি আপনার পরীক্ষাগুলি মাঝে মাঝে পাস এবং ব্যর্থ হয়, এমনকি নিজেরাই পরীক্ষায় কোনও পরিবর্তন না করেও, আপনাকে যাচাই করতে হতে পারে যে সেগুলি সঠিকভাবে সিকোয়েন্সড। এমুলেটরের সাথে বেশিরভাগ মিথস্ক্রিয়া অ্যাসিঙ্ক্রোনাস, তাই দুবার চেক করুন যে সমস্ত অ্যাসিঙ্ক কোড সঠিকভাবে ক্রমযুক্ত। হয় আপনি প্রতিশ্রুতি chaining, অথবা ব্যবহার করে সিকোয়েন্সিং ঠিক করতে পারবো await অকুণ্ঠচিত্তে স্বরলিপি।

বিশেষ করে, নিম্নলিখিত অ্যাসিঙ্ক অপারেশন পর্যালোচনা করুন:

  • নিরাপত্তা নিয়ম সেট উদাহরণস্বরূপ সঙ্গে, initializeTestEnvironment
  • পড়া এবং তথ্য লেখা, সঙ্গে, উদাহরণস্বরূপ, db.collection("users").doc("alice").get()
  • পরিচালনাগত গবেষকেরা সহ assertSucceeds এবং assertFails

আপনি যখন প্রথমবার এমুলেটর লোড করবেন তখনই পরীক্ষাগুলি পাস হবে

এমুলেটর রাষ্ট্রীয়। এটি মেমরিতে লেখা সমস্ত ডেটা সংরক্ষণ করে, তাই যখনই এমুলেটর বন্ধ হয়ে যায় তখন যেকোনো ডেটা হারিয়ে যায়। আপনি যদি একই প্রজেক্ট আইডির বিরুদ্ধে একাধিক পরীক্ষা চালাচ্ছেন, প্রতিটি পরীক্ষা এমন ডেটা তৈরি করতে পারে যা পরবর্তী পরীক্ষাগুলিকে প্রভাবিত করতে পারে। এই আচরণকে বাইপাস করার জন্য আপনি নিচের যেকোনো পদ্ধতি ব্যবহার করতে পারেন:

  • প্রতিটি পরীক্ষার জন্য অনন্য প্রকল্প আইডি ব্যবহার করুন। মনে রাখবেন যে, আপনি কল করতে হবে যদি আপনি এই কাজ করতে পছন্দ করে initializeTestEnvironment প্রতিটি পরীক্ষার অংশ হিসেবে; নিয়ম শুধুমাত্র স্বয়ংক্রিয়ভাবে ডিফল্ট প্রকল্প আইডির জন্য লোড করা হয়।
  • আপনার পরীক্ষাগুলি পুনর্গঠন করুন যাতে তারা পূর্বে লিখিত ডেটার সাথে যোগাযোগ না করে (উদাহরণস্বরূপ, প্রতিটি পরীক্ষার জন্য একটি ভিন্ন সংগ্রহ ব্যবহার করুন)।
  • একটি পরীক্ষার সময় লেখা সমস্ত ডেটা মুছুন।

পরীক্ষার ব্যবস্থা খুবই জটিল

আপনার পরীক্ষা সেট করার সময়, আপনি এমনভাবে ডেটা পরিবর্তন করতে চাইতে পারেন যা আপনার ক্লাউড ফায়ারস্টোর সিকিউরিটি রুলস আসলে অনুমতি দেয় না। আপনার বিধিগুলি পরীক্ষা সেটআপ জটিল উপার্জন হয়, ব্যবহার করার চেষ্টা করুন RulesTestEnvironment.withSecurityRulesDisabled , আপনার সেটআপ পদক্ষেপে তাই সার্চ লিখেছেন না আরম্ভ হবে PERMISSION_DENIED ত্রুটি।

এর পর, আপনার পরীক্ষার ব্যবহার করে একটি প্রমাণীকৃত বা অবিশ্বস্ত ব্যবহারকারী হিসাবে অপারেশন সম্পাদন করতে পারবেন RulesTestEnvironment.authenticatedContext এবং unauthenticatedContext যথাক্রমে। এটি আপনাকে যাচাই করতে দেয় যে আপনার ক্লাউড ফায়ারস্টোর সিকিউরিটি রুলস বিভিন্ন ক্ষেত্রে সঠিকভাবে অনুমতি দেয় / অস্বীকার করে।