Firebase Local Emulator Suite ব্যবহার করার আগে, নিশ্চিত করুন যে আপনি একটি Firebase প্রকল্প তৈরি করেছেন, আপনার ডেভেলপমেন্ট পরিবেশ সেট আপ করেছেন এবং আপনার প্ল্যাটফর্মের জন্য Firebase দিয়ে শুরু করুন বিষয় অনুসারে Firebase SDK নির্বাচন এবং ইনস্টল করেছেন: Apple , Android অথবা Web ।
প্রোটোটাইপ এবং পরীক্ষা
Local Emulator Suite বেশ কিছু প্রোডাক্ট এমুলেটর রয়েছে, যেমনটি Firebase Local Emulator Suite বর্ণিত হয়েছে। আপনি প্রোটোটাইপ করতে পারেন এবং পৃথক এমুলেটরের পাশাপাশি এমুলেটরের সংমিশ্রণ দিয়ে পরীক্ষা করতে পারেন, যেমনটি আপনি উপযুক্ত মনে করেন, আপনি যে ফায়ারবেস পণ্য উৎপাদনে ব্যবহার করছেন তার সাথে সঙ্গতিপূর্ণ।

এই বিষয়ের জন্য, Local Emulator Suite ওয়ার্কফ্লো চালু করার জন্য, ধরে নেওয়া যাক আপনি এমন একটি অ্যাপে কাজ করছেন যা পণ্যের একটি সাধারণ সংমিশ্রণ ব্যবহার করে: একটি ফায়ারবেস ডাটাবেস এবং সেই ডাটাবেসের ক্রিয়াকলাপ দ্বারা ট্রিগার করা ক্লাউড ফাংশন।
আপনার ফায়ারবেস প্রকল্পটি স্থানীয়ভাবে শুরু করার পরে, Local Emulator Suite ব্যবহার করে উন্নয়ন চক্রের সাধারণত তিনটি ধাপ থাকবে:
প্রোটোটাইপ এমুলেটর এবং Emulator Suite UI সাথে ইন্টারেক্টিভভাবে বৈশিষ্ট্যযুক্ত।
আপনি যদি ডাটাবেস এমুলেটর বা Cloud Functions এমুলেটর ব্যবহার করেন, তাহলে আপনার অ্যাপটিকে এমুলেটরের সাথে সংযুক্ত করার জন্য এককালীন পদক্ষেপটি সম্পাদন করুন।
এমুলেটর এবং কাস্টম স্ক্রিপ্ট দিয়ে আপনার পরীক্ষাগুলি স্বয়ংক্রিয় করুন।
স্থানীয়ভাবে একটি Firebase প্রকল্প শুরু করুন
নিশ্চিত করুন যে আপনি CLI ইনস্টল করেছেন অথবা এর সর্বশেষ সংস্করণে আপডেট করেছেন ।
curl -sL firebase.tools | bashযদি আপনি ইতিমধ্যেই এটি না করে থাকেন, তাহলে বর্তমান ওয়ার্কিং ডিরেক্টরিটিকে একটি Firebase প্রকল্প হিসাবে শুরু করুন, অনস্ক্রিন প্রম্পট অনুসরণ করে আপনি Cloud Functions এবং Cloud Firestore অথবা Realtime Database ব্যবহার করছেন তা নির্দিষ্ট করুন:
firebase init আপনার প্রোজেক্ট ডিরেক্টরিতে এখন ফায়ারবেস কনফিগারেশন ফাইল, ডাটাবেসের জন্য একটি Firebase Security Rules ডেফিনিশন ফাইল, ক্লাউড ফাংশন কোড ধারণকারী একটি functions ডিরেক্টরি এবং অন্যান্য সহায়ক ফাইল থাকবে।
ইন্টারেক্টিভভাবে প্রোটোটাইপ
Local Emulator Suite এমনভাবে তৈরি করা হয়েছে যাতে আপনি দ্রুত নতুন বৈশিষ্ট্যগুলি প্রোটোটাইপ করতে পারেন এবং স্যুটের অন্তর্নির্মিত ইউজার ইন্টারফেস হল এর সবচেয়ে কার্যকর প্রোটোটাইপিং টুলগুলির মধ্যে একটি। এটি অনেকটা Firebase কনসোল স্থানীয়ভাবে চালানোর মতো।
Emulator Suite UI ব্যবহার করে, আপনি একটি ডাটাবেসের নকশা পুনরাবৃত্তি করতে পারেন, ক্লাউড ফাংশন সহ বিভিন্ন ডেটাফ্লো চেষ্টা করতে পারেন, সুরক্ষা নিয়মের পরিবর্তনগুলি মূল্যায়ন করতে পারেন, আপনার ব্যাক-এন্ড পরিষেবাগুলি কীভাবে কাজ করছে তা নিশ্চিত করার জন্য লগগুলি পরীক্ষা করতে পারেন এবং আরও অনেক কিছু করতে পারেন। তারপর, যদি আপনি নতুন করে শুরু করতে চান, তাহলে আপনার ডাটাবেসটি সাফ করুন এবং একটি নতুন ডিজাইন ধারণা দিয়ে নতুন করে শুরু করুন।
আপনি যখন Local Emulator Suite শুরু করবেন তখন এটি সবই উপলব্ধ হবে:
firebase emulators:startআমাদের কাল্পনিক অ্যাপটির প্রোটোটাইপ তৈরি করতে, আসুন একটি ডাটাবেসে টেক্সট এন্ট্রি পরিবর্তন করার জন্য একটি মৌলিক ক্লাউড ফাংশন সেট আপ এবং পরীক্ষা করি, এবং এটিকে ট্রিগার করার জন্য Emulator Suite UI তে সেই ডাটাবেসটি তৈরি এবং পূরণ করি।
- আপনার প্রোজেক্ট ডিরেক্টরিতে
functions/index.jsফাইলটি সম্পাদনা করে ডাটাবেস লেখার মাধ্যমে ট্রিগার করা একটি ক্লাউড ফাংশন তৈরি করুন। বিদ্যমান ফাইলের বিষয়বস্তু নিম্নলিখিত স্নিপেট দিয়ে প্রতিস্থাপন করুন। এই ফাংশনটিmessagesসংগ্রহে ডকুমেন্টের পরিবর্তনগুলি শোনে, একটি ডকুমেন্টেরoriginalক্ষেত্রের বিষয়বস্তুকে বড় হাতের অক্ষরে রূপান্তর করে এবং ফলাফলটি সেই ডকুমেন্টেরuppercaseক্ষেত্রে সংরক্ষণ করে। firebase emulators:startদিয়ে Local Emulator Suite চালু করুন:start। Cloud Functions এবং ডাটাবেস এমুলেটরগুলি শুরু হয়, স্বয়ংক্রিয়ভাবে ইন্টারঅপারেট করার জন্য কনফিগার করা হয়।- আপনার ব্রাউজারে
http://localhost:4000এ UI দেখুন। UI এর জন্য ডিফল্ট পোর্ট 4000, তবে Firebase CLI দ্বারা টার্মিনাল বার্তা আউটপুট পরীক্ষা করুন। উপলব্ধ এমুলেটরগুলির অবস্থা লক্ষ্য করুন। আমাদের ক্ষেত্রে, Cloud Functions এবং Cloud Firestore এমুলেটরগুলি চলমান থাকবে।

- UI-তে, Firestore > Data ট্যাবে, Start collection-এ ক্লিক করুন এবং fieldname
originalএবং valuetestসহ একটিmessagesসংগ্রহে একটি নতুন ডকুমেন্ট তৈরি করতে প্রম্পটগুলি অনুসরণ করুন। এটি আমাদের ক্লাউড ফাংশনটি ট্রিগার করে। লক্ষ্য করুন যে "TEST" স্ট্রিং দিয়ে একটি নতুনuppercaseক্ষেত্র শীঘ্রই প্রদর্শিত হবে।


- Firestore > Requests ট্যাবে, আপনার অনুকরণ করা ডাটাবেসে করা অনুরোধগুলি পরীক্ষা করুন, যার মধ্যে সেই অনুরোধগুলি পূরণের অংশ হিসাবে সম্পাদিত সমস্ত Firebase Security Rules মূল্যায়ন অন্তর্ভুক্ত রয়েছে।
- ডাটাবেস আপডেট করার সময় আপনার ফাংশনে কোনও ত্রুটি হয়নি তা নিশ্চিত করতে লগ ট্যাবটি পরীক্ষা করুন।
const functions = require('firebase-functions/v1'); exports.makeUppercase = functions.firestore.document('/messages/{documentId}') .onCreate((snap, context) => { const original = snap.data().original; console.log('Uppercasing', context.params.documentId, original); const uppercase = original.toUpperCase(); return snap.ref.set({uppercase}, {merge: true}); });
আপনি সহজেই আপনার ক্লাউড ফাংশন কোড এবং ইন্টারেক্টিভ ডাটাবেস সম্পাদনাগুলির মধ্যে পুনরাবৃত্তি করতে পারেন যতক্ষণ না আপনি আপনার পছন্দের ডেটা প্রবাহটি পান, ইন-অ্যাপ ডাটাবেস অ্যাক্সেস কোড স্পর্শ না করে, পুনরায় কম্পাইল করা এবং পরীক্ষা স্যুটগুলি পুনরায় চালানো ছাড়াই।
আপনার অ্যাপটি এমুলেটরের সাথে সংযুক্ত করুন
যখন আপনি ইন্টারেক্টিভ প্রোটোটাইপিংয়ের ক্ষেত্রে ভালো অগ্রগতি করবেন এবং একটি ডিজাইন ঠিক করে ফেলবেন, তখন আপনি উপযুক্ত SDK ব্যবহার করে আপনার অ্যাপে ডাটাবেস অ্যাক্সেস কোড যোগ করতে প্রস্তুত থাকবেন। আপনার অ্যাপের আচরণ সঠিক কিনা তা নিশ্চিত করার জন্য আপনি ডাটাবেস ট্যাব এবং ফাংশনের জন্য, Emulator Suite UI তে লগস ট্যাব ব্যবহার করতে থাকবেন।
মনে রাখবেন যে Local Emulator Suite একটি লোকাল ডেভেলপমেন্ট টুল। আপনার প্রোডাকশন ডাটাবেসে লেখার ফলে আপনি স্থানীয়ভাবে প্রোটোটাইপ করা ফাংশনগুলি ট্রিগার হবে না।
আপনার অ্যাপ থেকে ডাটাবেসে লেখা তৈরি করার সুবিধা নিতে, আপনাকে আপনার পরীক্ষার ক্লাস বা ইন-অ্যাপ কনফিগারেশন Cloud Firestore এমুলেটরে নির্দেশ করতে হবে।
Kotlin
// 10.0.2.2 is the special IP address to connect to the 'localhost' of // the host computer from an Android emulator. val firestore = Firebase.firestore firestore.useEmulator("10.0.2.2", 8080) firestore.firestoreSettings = firestoreSettings { isPersistenceEnabled = false }
Java
// 10.0.2.2 is the special IP address to connect to the 'localhost' of // the host computer from an Android emulator. FirebaseFirestore firestore = FirebaseFirestore.getInstance(); firestore.useEmulator("10.0.2.2", 8080); FirebaseFirestoreSettings settings = new FirebaseFirestoreSettings.Builder() .setPersistenceEnabled(false) .build(); firestore.setFirestoreSettings(settings);
সুইফট
let settings = Firestore.firestore().settings settings.host = "127.0.0.1:8080" settings.cacheSettings = MemoryCacheSettings() settings.isSSLEnabled = false Firestore.firestore().settings = settings
Web
import { getFirestore, connectFirestoreEmulator } from "firebase/firestore"; // firebaseApps previously initialized using initializeApp() const db = getFirestore(); connectFirestoreEmulator(db, '127.0.0.1', 8080);
Web
// Firebase previously initialized using firebase.initializeApp(). var db = firebase.firestore(); if (location.hostname === "localhost") { db.useEmulator("127.0.0.1", 8080); }
কাস্টম স্ক্রিপ্ট দিয়ে আপনার পরীক্ষাগুলি স্বয়ংক্রিয় করুন
এবার শেষ সামগ্রিক কর্মপ্রবাহের ধাপে। একবার আপনি অ্যাপের মধ্যে আপনার বৈশিষ্ট্যটির প্রোটোটাইপ তৈরি করে ফেললে এবং এটি আপনার সমস্ত প্ল্যাটফর্মে আশাব্যঞ্জক দেখালে, আপনি চূড়ান্ত বাস্তবায়ন এবং পরীক্ষার দিকে ঝুঁকতে পারেন। ইউনিট টেস্টিং এবং CI কর্মপ্রবাহের জন্য, আপনি exec কমান্ডের সাহায্যে একটি একক কলে এমুলেটর শুরু করতে, স্ক্রিপ্টেড পরীক্ষা চালাতে এবং এমুলেটর বন্ধ করতে পারেন:
firebase emulators:exec "./testdir/test.sh"আরও গভীরভাবে পৃথক এমুলেটরগুলি অন্বেষণ করুন
এখন আপনি দেখেছেন যে ক্লায়েন্ট-সাইড ওয়ার্কফ্লো কেমন দেখাচ্ছে, আপনি স্যুটের পৃথক এমুলেটর সম্পর্কে বিশদ বিবরণ দিয়ে এগিয়ে যেতে পারেন, যার মধ্যে সার্ভার-সাইড অ্যাপ ডেভেলপমেন্টের জন্য কীভাবে সেগুলি ব্যবহার করবেন তাও অন্তর্ভুক্ত রয়েছে:
- আপনার প্রোটোটাইপিং ওয়ার্কফ্লোতে Authentication এমুলেটর যোগ করুন
- Realtime Database এমুলেটর বৈশিষ্ট্যগুলি সম্পর্কে গভীরভাবে জানুন
- Cloud Storage for Firebase বৈশিষ্ট্যগুলি সম্পর্কে বিস্তারিত জানুন
- Cloud Firestore এমুলেটর বৈশিষ্ট্যগুলি সম্পর্কে বিস্তারিত জানুন
- আপনার অ্যাপটিকে ক্লাউড ফাংশন এমুলেটরের সাথে সংযুক্ত করুন
- Extensions এমুলেটর দিয়ে বিলিং খরচ কমিয়ে Firebase Extensions মূল্যায়ন করুন
এরপর কী?
উপরে লিঙ্ক করা নির্দিষ্ট এমুলেটর সম্পর্কিত বিষয়গুলি অবশ্যই পড়ুন। তারপর:
- ভিডিওর একটি সেট এবং বিস্তারিত কীভাবে করবেন তার উদাহরণের জন্য, Firebase Emulators Training Playlist অনুসরণ করুন।
- নিরাপত্তা নিয়ম পরীক্ষা এবং ফায়ারবেস টেস্ট SDK এর সাথে জড়িত উন্নত ব্যবহারের ঘটনাগুলি তদন্ত করুন: টেস্ট সিকিউরিটি রুলস ( Cloud Firestore ) , টেস্ট সিকিউরিটি রুলস ( Realtime Database ) , এবং টেস্ট সিকিউরিটি রুলস ( Cloud Storage for Firebase ) ।