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

Firebase স্থানীয় এমুলেটর সুইট সহজে সম্পূর্ণরূপে আপনার অ্যাপ্লিকেশনের যাচাই করতে বৈশিষ্ট্য এবং আচরণ । আপনার ফায়ারবেস নিরাপত্তা নিয়ম কনফিগারেশন যাচাই করার জন্য এটি একটি দুর্দান্ত সরঞ্জাম। স্থানীয় পরিবেশে ইউনিট পরীক্ষা চালাতে এবং স্বয়ংক্রিয় করতে Firebase Emulators ব্যবহার করুন। এই ডকুমেন্টে বর্ণিত পদ্ধতিগুলি আপনাকে সাহায্য করবে যেমন আপনি আপনার অ্যাপের জন্য ইউনিট পরীক্ষা তৈরি এবং স্বয়ংক্রিয় করেন যা আপনার নিয়মগুলি যাচাই করে।

যদি আপনি এমনটি না থাকে, তাহলে Firebase emulators সেট আপ

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

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

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

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

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

রিয়েলটাইম ডাটাবেস এমুলেটরের সাথে ইন্টারঅ্যাক্ট করা

একটি প্রকাশনা Firebase রিয়েলটাইম ডাটাবেস ইনস্ট্যান্স এর একটি উপডোমেনকে এখানে অ্যাক্সেসযোগ্য firebaseio.com , এবং আপনি এই মত REST API অ্যাক্সেস করতে পারে:

https://<database_name>.firebaseio.com/path/to/my/data.json

এমুলেটর স্থানীয়ভাবে চালায়, এবং এ উপলব্ধ localhost:9000 । একটি ডেটাবেজ নিদর্শনের সঙ্গে ইন্টারঅ্যাক্ট করার জন্য, আপনি ব্যবহার করতে হবে ns ডাটাবেসের নাম নির্দিষ্ট করতে ক্যোয়ারী প্যারামিটার।

http://localhost:9000/path/to/my/data.json?ns=<database_name>

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

ফায়ারবেস একটি সিকিউরিটি রুলস ইউনিট টেস্টিং লাইব্রেরি বিতরণ করে যার সংস্করণ 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 কম্প্যাট) ব্যবহার করা যেতে পারে।

রিয়েলটাইম ডাটাবেস

রিয়েলটাইম ডাটাবেস

RulesTestEnvironment.clearDatabase() => Promise<void>

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

RulesTestContext.database(databaseURL?: Firestore.FirestoreSettings) => Firestore;

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

মেঘ স্টোরেজ

মেঘ স্টোরেজ

RulesTestEnvironment.clearStorage() => Promise<void>

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

RulesTestContext.storage(bucketUrl?: string) => Firebase Storage;

এই পদ্ধতিটি এমুলেটরের সাথে সংযোগ স্থাপনের জন্য কনফিগার করা একটি স্টোরেজ উদাহরণ প্রদান করে। পদ্ধতি গ্রহণ করে gs:// পরীক্ষার জন্য Firebase সংগ্রহস্থল বাকেট থেকে URL। নির্দিষ্ট করা হলে, বালতি নামের একটি অনুকরণীয় সংস্করণের জন্য একটি সংগ্রহস্থল উদাহরণ প্রদান করে।

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

এমুলেটরের সাথে ইন্টারফেস করার জন্য ফায়ারবেস টেস্ট এসডিকে ব্যবহার করা পদ্ধতিগুলি দেখতে একটি পণ্য নির্বাচন করুন।

ক্লাউড ফায়ারস্টোর

initializeTestApp({ projectId: string, auth: Object }) => FirebaseApp

এই পদ্ধতিটি প্রজেক্ট আইডি এবং অপশনে নির্দিষ্ট অথ ভেরিয়েবলের সাথে সম্পর্কিত একটি প্রাথমিক ফায়ারবেস অ্যাপ্লিকেশন প্রদান করে। পরীক্ষায় ব্যবহারের জন্য একটি নির্দিষ্ট ব্যবহারকারী হিসাবে প্রমাণিত একটি অ্যাপ তৈরি করতে এটি ব্যবহার করুন।

firebase.initializeTestApp({
  projectId: "my-test-project",
  auth: { uid: "alice", email: "alice@example.com" }
});

initializeAdminApp({ projectId: string }) => FirebaseApp

এই পদ্ধতিটি একটি প্রারম্ভিক অ্যাডমিন ফায়ারবেস অ্যাপ্লিকেশন প্রদান করে। এই অ্যাপটি পড়া এবং লেখার সময় নিরাপত্তা বিধিগুলি অতিক্রম করে। পরীক্ষার জন্য রাজ্য সেট করার জন্য অ্যাডমিন হিসেবে প্রমাণিত একটি অ্যাপ তৈরি করতে এটি ব্যবহার করুন।

firebase.initializeAdminApp({ projectId: "my-test-project" });
    

apps() => [FirebaseApp] এই পদ্ধতি আয় সমস্ত বর্তমানে সক্রিয়া পরীক্ষা ও অ্যাডমিন অ্যাপ্লিকেশন রয়েছে। পরীক্ষার মধ্যে বা পরে অ্যাপস পরিষ্কার করতে এটি ব্যবহার করুন।

Promise.all(firebase.apps().map(app => app.delete()))

loadFirestoreRules({ projectId: string, rules: Object }) => Promise

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

firebase.loadFirestoreRules({
  projectId: "my-test-project",
  rules: fs.readFileSync("/path/to/firestore.rules", "utf8")
});
    

assertFails(pr: Promise) => Promise

এই পদ্ধতিটি একটি প্রতিশ্রুতি প্রদান করে যা ইনপুট সফল হলে প্রত্যাখ্যান করা হয় বা ইনপুট প্রত্যাখ্যান হলে সফল হয়। ডাটাবেস পড়া বা লিখতে ব্যর্থ হলে এটি ব্যবহার করতে এটি ব্যবহার করুন।

firebase.assertFails(app.firestore().collection("private").doc("super-secret-document").get());
    

assertSucceeds(pr: Promise) => Promise

এই পদ্ধতিটি একটি প্রতিশ্রুতি প্রদান করে যা ইনপুট সফল হলে সফল হয় এবং ইনপুট প্রত্যাখ্যান হলে প্রত্যাখ্যাত হয়। একটি ডাটাবেস পড়া বা লিখতে সফল হলে এটি ব্যবহার করার জন্য এটি ব্যবহার করুন।

firebase.assertSucceeds(app.firestore().collection("public").doc("test-document").get());
    

clearFirestoreData({ projectId: string }) => Promise

এই পদ্ধতি স্থানীয়ভাবে চলমান ফায়ারস্টোর উদাহরণে একটি নির্দিষ্ট প্রকল্পের সাথে সম্পর্কিত সমস্ত ডেটা সাফ করে। পরীক্ষার পরে পরিষ্কার করার জন্য এই পদ্ধতিটি ব্যবহার করুন।

firebase.clearFirestoreData({
  projectId: "my-test-project"
});
   

রিয়েলটাইম ডাটাবেস

রিয়েলটাইম ডাটাবেস

initializeTestApp({ databaseName: string, auth: Object }) => FirebaseApp

পরীক্ষায় ব্যবহারের জন্য একটি নির্দিষ্ট ব্যবহারকারী হিসাবে প্রমাণিত একটি অ্যাপ তৈরি করতে এটি ব্যবহার করুন।

ডাটাবেসের নাম এবং auth ভেরিয়েবল ওভাররাইড অপশনে উল্লিখিত একটি প্রারম্ভিক ফায়ারবেস অ্যাপ্লিকেশন প্রদান করে।

firebase.initializeTestApp({
  databaseName: "my-database",
  auth: { uid: "alice" }
});

initializeAdminApp({ databaseName: string }) => FirebaseApp

পরীক্ষার জন্য রাজ্য সেট আপ করার জন্য অ্যাডমিন হিসেবে প্রমাণিত একটি অ্যাপ তৈরি করতে এটি ব্যবহার করুন।

বিকল্পগুলিতে নির্দিষ্ট ডাটাবেস নামের সাথে সম্পর্কিত একটি প্রাথমিক প্রশাসক ফায়ারবেস অ্যাপ্লিকেশন প্রদান করে। এই অ্যাপটি ডাটাবেসে পড়ার এবং লেখার সময় নিরাপত্তার নিয়মকে অতিক্রম করে।

firebase.initializeAdminApp({ databaseName: "my-database" });

loadDatabaseRules({ databaseName: string, rules: Object }) => Promise

আপনার ডাটাবেসের নিয়মগুলি সেট করতে এটি ব্যবহার করুন।

স্থানীয়ভাবে চলমান ডাটাবেসে নিয়ম পাঠায়। একটি অপশন অবজেক্ট নেয় যা আপনার "databaseName" এবং আপনার "নিয়মগুলি" স্ট্রিং হিসাবে নির্দিষ্ট করে।

firebase
      .loadDatabaseRules({
        databaseName: "my-database",
        rules: "{'rules': {'.read': false, '.write': false}}"
      });

apps() => [FirebaseApp]

বর্তমানে প্রারম্ভিক পরীক্ষা এবং প্রশাসক অ্যাপ্লিকেশনগুলি প্রদান করে।

পরীক্ষার মধ্যে বা পরে অ্যাপস পরিষ্কার করতে এটি ব্যবহার করুন (লক্ষ্য করুন যে সক্রিয় শ্রোতাদের সাথে শুরু হওয়া অ্যাপ্লিকেশনগুলি জাভাস্ক্রিপ্টকে প্রস্থান থেকে বাধা দেয়):

 Promise.all(firebase.apps().map(app => app.delete()))

assertFails(pr: Promise) => Promise

ইনপুট সফল হলে প্রত্যাখ্যান করা একটি প্রতিশ্রুতি প্রদান করে এবং ইনপুট প্রত্যাখ্যান হলে সফল হয়।

একটি ডাটাবেস পড়তে বা লিখতে ব্যর্থ হয় তা দৃ to় করার জন্য এটি ব্যবহার করুন:

firebase.assertFails(app.database().ref("secret").once("value"));

assertSucceeds(pr: Promise) => Promise

একটি প্রতিশ্রুতি প্রদান করে যা ইনপুট সফল হলে সফল হয় এবং ইনপুট প্রত্যাখ্যান হলে প্রত্যাখ্যাত হয়।

একটি ডাটাবেস পড়তে বা লিখতে সফল হয়েছে তা দৃ to় করার জন্য এটি ব্যবহার করুন:

firebase.assertSucceeds(app.database().ref("public").once("value"));

মেঘ স্টোরেজ

মেঘ স্টোরেজ

initializeTestApp({ storageBucket: string, auth: Object }) => FirebaseApp

পরীক্ষায় ব্যবহারের জন্য একটি নির্দিষ্ট ব্যবহারকারী হিসাবে প্রমাণিত একটি অ্যাপ তৈরি করতে এটি ব্যবহার করুন।

স্টোরেজ বালতি নামের সাথে সম্পর্কিত একটি আরম্ভকৃত ফায়ারবেস অ্যাপ্লিকেশন এবং বিকল্পগুলিতে নির্দিষ্ট অথ ভেরিয়েবল ওভাররাইড প্রদান করে।

firebase.initializeTestApp({
  storageBucket: "my-bucket",
  auth: { uid: "alice" }
});

initializeAdminApp({ storageBucket: string }) => FirebaseApp

পরীক্ষার জন্য রাজ্য সেট আপ করার জন্য অ্যাডমিন হিসেবে প্রমাণিত একটি অ্যাপ তৈরি করতে এটি ব্যবহার করুন।

বিকল্পগুলিতে নির্দিষ্ট করা স্টোরেজ বালতি নাম অনুসারে একটি প্রারম্ভিক অ্যাডমিন ফায়ারবেস অ্যাপ্লিকেশন প্রদান করে। এই অ্যাপটি বালতিতে পড়ার এবং লেখার সময় নিরাপত্তার নিয়মকে অতিক্রম করে।

firebase.initializeAdminApp({ storageBucket: "my-bucket" });

loadStorageRules({ storageBucket: string, rules: Object }) => Promise

আপনার স্টোরেজ বালতির নিয়ম সেট করতে এটি ব্যবহার করুন।

স্থানীয়ভাবে পরিচালিত স্টোরেজ বালতিতে নিয়ম পাঠায়। একটি অপশন অবজেক্ট নেয় যা আপনার "storageBucket" এবং আপনার "নিয়মগুলি" স্ট্রিং হিসাবে নির্দিষ্ট করে।

firebase
      .loadStorageRules({
        storageBucket: "my-bucket",
        rules: fs.readFileSync("/path/to/storage.rules", "utf8")
      });

apps() => [FirebaseApp]

বর্তমানে প্রারম্ভিক পরীক্ষা এবং প্রশাসক অ্যাপ্লিকেশনগুলি প্রদান করে।

পরীক্ষার মধ্যে বা পরে অ্যাপস পরিষ্কার করতে এটি ব্যবহার করুন (লক্ষ্য করুন যে সক্রিয় শ্রোতাদের সাথে শুরু হওয়া অ্যাপ্লিকেশনগুলি জাভাস্ক্রিপ্টকে প্রস্থান থেকে বাধা দেয়):

 Promise.all(firebase.apps().map(app => app.delete()))

assertFails(pr: Promise) => Promise

ইনপুট সফল হলে প্রত্যাখ্যান করা একটি প্রতিশ্রুতি প্রদান করে এবং ইনপুট প্রত্যাখ্যান হলে সফল হয়।

একটি স্টোরেজ বালতি পড়তে বা লিখতে ব্যর্থ হয় তা দৃ to় করার জন্য এটি ব্যবহার করুন:

firebase.assertFails(app.storage().ref("letters/private.doc").getMetadata());

assertSucceeds(pr: Promise) => Promise

একটি প্রতিশ্রুতি প্রদান করে যা ইনপুট সফল হলে সফল হয় এবং ইনপুট প্রত্যাখ্যান হলে প্রত্যাখ্যাত হয়।

একটি স্টোরেজ বালতি পড়তে বা লিখতে সফল হওয়ার জন্য এটি ব্যবহার করুন:

firebase.assertFails(app.storage().ref("images/cat.png").getMetadata());

JS SDK v8 এর জন্য RUT লাইব্রেরি API

এমুলেটরের সাথে ইন্টারফেস করার জন্য Firebase Test SDK দ্বারা ব্যবহৃত পদ্ধতিগুলি দেখতে একটি পণ্য নির্বাচন করুন।

ক্লাউড ফায়ারস্টোর

ক্লাউড ফায়ারস্টোর

initializeTestApp({ projectId: string, auth: Object }) => FirebaseApp

এই পদ্ধতিটি প্রজেক্ট আইডি এবং অপশনে নির্দিষ্ট অথ ভেরিয়েবলের সাথে সম্পর্কিত একটি প্রাথমিক ফায়ারবেস অ্যাপ্লিকেশন প্রদান করে। পরীক্ষায় ব্যবহারের জন্য একটি নির্দিষ্ট ব্যবহারকারী হিসাবে প্রমাণিত একটি অ্যাপ তৈরি করতে এটি ব্যবহার করুন।

firebase.initializeTestApp({
  projectId: "my-test-project",
  auth: { uid: "alice", email: "alice@example.com" }
});

initializeAdminApp({ projectId: string }) => FirebaseApp

এই পদ্ধতিটি একটি প্রারম্ভিক অ্যাডমিন ফায়ারবেস অ্যাপ্লিকেশন প্রদান করে। এই অ্যাপটি পড়া এবং লেখার সময় নিরাপত্তা বিধিগুলি অতিক্রম করে। পরীক্ষার জন্য রাজ্য সেট করার জন্য অ্যাডমিন হিসেবে প্রমাণিত একটি অ্যাপ তৈরি করতে এটি ব্যবহার করুন।

firebase.initializeAdminApp({ projectId: "my-test-project" });
    

apps() => [FirebaseApp] এই পদ্ধতি আয় সমস্ত বর্তমানে সক্রিয়া পরীক্ষা ও অ্যাডমিন অ্যাপ্লিকেশন রয়েছে। পরীক্ষার মধ্যে বা পরে অ্যাপস পরিষ্কার করতে এটি ব্যবহার করুন।

Promise.all(firebase.apps().map(app => app.delete()))

loadFirestoreRules({ projectId: string, rules: Object }) => Promise

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

firebase.loadFirestoreRules({
  projectId: "my-test-project",
  rules: fs.readFileSync("/path/to/firestore.rules", "utf8")
});
    

assertFails(pr: Promise) => Promise

এই পদ্ধতিটি একটি প্রতিশ্রুতি প্রদান করে যা ইনপুট সফল হলে প্রত্যাখ্যান করা হয় বা ইনপুট প্রত্যাখ্যান হলে সফল হয়। ডাটাবেস পড়া বা লিখতে ব্যর্থ হলে এটি ব্যবহার করতে এটি ব্যবহার করুন।

firebase.assertFails(app.firestore().collection("private").doc("super-secret-document").get());
    

assertSucceeds(pr: Promise) => Promise

এই পদ্ধতিটি একটি প্রতিশ্রুতি প্রদান করে যা ইনপুট সফল হলে সফল হয় এবং ইনপুট প্রত্যাখ্যান হলে প্রত্যাখ্যাত হয়। একটি ডাটাবেস পড়া বা লিখতে সফল হলে এটি ব্যবহার করার জন্য এটি ব্যবহার করুন।

firebase.assertSucceeds(app.firestore().collection("public").doc("test-document").get());
    

clearFirestoreData({ projectId: string }) => Promise

এই পদ্ধতি স্থানীয়ভাবে চলমান ফায়ারস্টোর উদাহরণে একটি নির্দিষ্ট প্রকল্পের সাথে সম্পর্কিত সমস্ত ডেটা সাফ করে। পরীক্ষার পরে পরিষ্কার করার জন্য এই পদ্ধতিটি ব্যবহার করুন।

firebase.clearFirestoreData({
  projectId: "my-test-project"
});
   

রিয়েলটাইম ডাটাবেস

রিয়েলটাইম ডাটাবেস

initializeTestApp({ databaseName: string, auth: Object }) => FirebaseApp

পরীক্ষায় ব্যবহারের জন্য একটি নির্দিষ্ট ব্যবহারকারী হিসাবে প্রমাণিত একটি অ্যাপ তৈরি করতে এটি ব্যবহার করুন।

ডাটাবেসের নাম এবং auth ভেরিয়েবল ওভাররাইড অপশনে উল্লিখিত একটি প্রারম্ভিক ফায়ারবেস অ্যাপ্লিকেশন প্রদান করে।

firebase.initializeTestApp({
  databaseName: "my-database",
  auth: { uid: "alice" }
});

initializeAdminApp({ databaseName: string }) => FirebaseApp

পরীক্ষার জন্য রাজ্য সেট আপ করার জন্য অ্যাডমিন হিসেবে প্রমাণিত একটি অ্যাপ তৈরি করতে এটি ব্যবহার করুন।

বিকল্পগুলিতে নির্দিষ্ট ডাটাবেস নামের সাথে সম্পর্কিত একটি প্রাথমিক প্রশাসক ফায়ারবেস অ্যাপ্লিকেশন প্রদান করে। এই অ্যাপটি ডাটাবেসে পড়ার এবং লেখার সময় নিরাপত্তার নিয়মকে অতিক্রম করে।

firebase.initializeAdminApp({ databaseName: "my-database" });

loadDatabaseRules({ databaseName: string, rules: Object }) => Promise

আপনার ডাটাবেসের নিয়মগুলি সেট করতে এটি ব্যবহার করুন।

স্থানীয়ভাবে চলমান ডাটাবেসে নিয়ম পাঠায়। একটি অপশন অবজেক্ট নেয় যা আপনার "databaseName" এবং আপনার "নিয়মগুলি" স্ট্রিং হিসাবে নির্দিষ্ট করে।

firebase
      .loadDatabaseRules({
        databaseName: "my-database",
        rules: "{'rules': {'.read': false, '.write': false}}"
      });

apps() => [FirebaseApp]

বর্তমানে প্রারম্ভিক পরীক্ষা এবং প্রশাসক অ্যাপ্লিকেশনগুলি প্রদান করে।

পরীক্ষার মধ্যে বা পরে অ্যাপস পরিষ্কার করতে এটি ব্যবহার করুন (লক্ষ্য করুন যে সক্রিয় শ্রোতাদের সাথে শুরু হওয়া অ্যাপ্লিকেশনগুলি জাভাস্ক্রিপ্টকে প্রস্থান থেকে বাধা দেয়):

 Promise.all(firebase.apps().map(app => app.delete()))

assertFails(pr: Promise) => Promise

ইনপুট সফল হলে প্রত্যাখ্যান করা একটি প্রতিশ্রুতি প্রদান করে এবং ইনপুট প্রত্যাখ্যান হলে সফল হয়।

একটি ডাটাবেস পড়তে বা লিখতে ব্যর্থ হয় তা দৃ to় করার জন্য এটি ব্যবহার করুন:

firebase.assertFails(app.database().ref("secret").once("value"));

assertSucceeds(pr: Promise) => Promise

একটি প্রতিশ্রুতি প্রদান করে যা ইনপুট সফল হলে সফল হয় এবং ইনপুট প্রত্যাখ্যান হলে প্রত্যাখ্যাত হয়।

একটি ডাটাবেস পড়তে বা লিখতে সফল হয়েছে তা দৃ to় করার জন্য এটি ব্যবহার করুন:

firebase.assertSucceeds(app.database().ref("public").once("value"));

মেঘ স্টোরেজ

মেঘ স্টোরেজ

initializeTestApp({ storageBucket: string, auth: Object }) => FirebaseApp

পরীক্ষায় ব্যবহারের জন্য একটি নির্দিষ্ট ব্যবহারকারী হিসাবে প্রমাণিত একটি অ্যাপ তৈরি করতে এটি ব্যবহার করুন।

স্টোরেজ বালতি নামের সাথে সম্পর্কিত একটি আরম্ভকৃত ফায়ারবেস অ্যাপ্লিকেশন এবং বিকল্পগুলিতে নির্দিষ্ট অথ ভেরিয়েবল ওভাররাইড প্রদান করে।

firebase.initializeTestApp({
  storageBucket: "my-bucket",
  auth: { uid: "alice" }
});

initializeAdminApp({ storageBucket: string }) => FirebaseApp

পরীক্ষার জন্য রাজ্য সেট আপ করার জন্য অ্যাডমিন হিসেবে প্রমাণিত একটি অ্যাপ তৈরি করতে এটি ব্যবহার করুন।

বিকল্পগুলিতে নির্দিষ্ট স্টোরেজ বালতি নামের সাথে সম্পর্কিত একটি প্রাথমিক প্রশাসক ফায়ারবেস অ্যাপ্লিকেশন প্রদান করে। এই অ্যাপটি বালতিতে পড়ার এবং লেখার সময় নিরাপত্তার নিয়মকে অতিক্রম করে।

firebase.initializeAdminApp({ storageBucket: "my-bucket" });

loadStorageRules({ storageBucket: string, rules: Object }) => Promise

আপনার স্টোরেজ বালতির নিয়ম সেট করতে এটি ব্যবহার করুন।

স্থানীয়ভাবে পরিচালিত স্টোরেজ বালতিতে নিয়ম পাঠায়। একটি অপশন অবজেক্ট নেয় যা আপনার "storageBucket" এবং আপনার "নিয়মগুলি" স্ট্রিং হিসাবে নির্দিষ্ট করে।

firebase
      .loadStorageRules({
        storageBucket: "my-bucket",
        rules: fs.readFileSync("/path/to/storage.rules", "utf8")
      });

apps() => [FirebaseApp]

বর্তমানে প্রারম্ভিক পরীক্ষা এবং প্রশাসক অ্যাপ্লিকেশনগুলি প্রদান করে।

পরীক্ষার মধ্যে বা পরে অ্যাপস পরিষ্কার করার জন্য এটি ব্যবহার করুন (লক্ষ্য করুন যে সক্রিয় শ্রোতাদের সাথে শুরু করা অ্যাপ্লিকেশনগুলি জাভাস্ক্রিপ্টকে বেরিয়ে আসতে বাধা দেয়):

 Promise.all(firebase.apps().map(app => app.delete()))

assertFails(pr: Promise) => Promise

ইনপুট সফল হলে প্রত্যাখ্যান করা একটি প্রতিশ্রুতি প্রদান করে এবং ইনপুট প্রত্যাখ্যান হলে সফল হয়।

একটি স্টোরেজ বালতি পড়তে বা লিখতে ব্যর্থ হয় তা দৃ to় করার জন্য এটি ব্যবহার করুন:

firebase.assertFails(app.storage().ref("letters/private.doc").getMetadata());

assertSucceeds(pr: Promise) => Promise

একটি প্রতিশ্রুতি প্রদান করে যা ইনপুট সফল হলে সফল হয় এবং ইনপুট প্রত্যাখ্যান হলে প্রত্যাখ্যাত হয়।

একটি স্টোরেজ বালতি পড়তে বা লিখতে সফল হওয়ার জন্য এটি ব্যবহার করুন:

firebase.assertFails(app.storage().ref("images/cat.png").getMetadata());