এক্সটেনশন মূল্যায়ন করতে এক্সটেনশন এমুলেটর ব্যবহার করুন

আপনার অ্যাপের সাথে Extensions এমুলেটর ব্যবহার করার আগে, আপনি সামগ্রিক Firebase Local Emulator Suite ওয়ার্কফ্লো বুঝেছেন এবং Local Emulator Suite ইনস্টল ও কনফিগার করেছেন কিনা তা নিশ্চিত করুন এবং এর CLI কমান্ড পর্যালোচনা করুন।

এই গাইডে ধরে নেওয়া হয়েছে যে আপনি Firebase Extensions এবং আপনার Firebase অ্যাপে সেগুলি কীভাবে ব্যবহার করবেন তা জানেন।

Extensions এমুলেটর দিয়ে আমি কী করতে পারি?

Extensions এমুলেটরের সাহায্যে, আপনি একটি নিরাপদ স্থানীয় পরিবেশে এক্সটেনশন ইনস্টল এবং ম্যানেজ করতে পারেন এবং বিলিং খরচ কমানোর সাথে সাথে তাদের ক্ষমতা আরও ভালভাবে বুঝতে পারেন। এমুলেটর আপনার এক্সটেনশনের ফাংশন লোকালি রান করে, যার মধ্যে Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication এবং Pub/Sub-এর জন্য এমুলেটর ব্যবহার করে ব্যাকগ্রাউন্ড ইভেন্ট-ট্রিগার করা ফাংশন এবং Eventarc-ট্রিগার করা ফাংশন অন্তর্ভুক্ত যা Cloud Functions v2-এ ইমপ্লিমেন্ট করা হয়েছে।

একটি Firebase প্রোজেক্ট বেছে নিন

Firebase Local Emulator Suite একটি Firebase প্রোজেক্টের জন্য প্রোডাক্ট এমুলেট করে।

ব্যবহার করার জন্য প্রোজেক্ট বেছে নিতে, এমুলেটর শুরু করার আগে, আপনার ওয়ার্কিং ডিরেক্টরিতে CLI রান firebase use করুন। অথবা, আপনি প্রতিটি এমুলেটর কমান্ডে --project ফ্ল্যাগ পাস করতে পারেন।

Local Emulator Suite আসল Firebase প্রোজেক্ট এবং ডেমো প্রোজেক্টের এমুলেশন সাপোর্ট করে।

প্রোজেক্টের ধরন ফিচার এমুলেটরের সাথে ব্যবহার করুন
রিয়েল

আসল Firebase প্রোজেক্ট হল এমন একটি প্রোজেক্ট যা আপনি তৈরি ও কনফিগার করেছেন (সম্ভবত Firebase কনসোলের মাধ্যমে)।

আসল প্রোজেক্টে লাইভ রিসোর্স থাকে, যেমন ডেটাবেস ইনস্ট্যান্স, স্টোরেজ বাকেট, ফাংশন বা সেই Firebase প্রোজেক্টের জন্য আপনার সেট-আপ করা অন্য কোনও রিসোর্স।

আসল Firebase প্রোজেক্ট নিয়ে কাজ করার সময়, আপনি কাজ করে এমন যেকোনও বা সব প্রোডাক্টের জন্য এমুলেটর চালাতে পারবেন।

আপনি এমুলেট করছেন না এমন যেকোনও প্রোডাক্টের জন্য, আপনার অ্যাপ এবং কোড লাইভ রিসোর্সের (ডেটাবেস ইনস্ট্যান্স, স্টোরেজ বাকেট, ফাংশন ইত্যাদি) সাথে ইন্টার‍্যাক্ট করবে।

নমুনা

ডেমো Firebase প্রোজেক্টে কোনও আসল Firebase কনফিগারেশন এবং লাইভ রিসোর্স থাকে না। এইসব প্রোজেক্ট সাধারণত কোডল্যাব বা অন্যান্য টিউটোরিয়ালের মাধ্যমে অ্যাক্সেস করা হয়।

ডেমো প্রোজেক্টের প্রোজেক্ট আইডিতে demo- প্রিফিক্স থাকে।

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

আমরা সাজেস্ট করি যে যেখানেই সম্ভব ডেমো প্রোজেক্ট ব্যবহার করুন। সুবিধার মধ্যে এইসব অন্তর্ভুক্ত আছে:

  • সহজ সেট-আপ, কারণ আপনি Firebase প্রোজেক্ট তৈরি না করেই এমুলেটর চালাতে পারবেন
  • আরও শক্তিশালী নিরাপত্তা, কারণ আপনার কোড যদি ভুলবশত নন-ইমুলেটেড (প্রোডাকশন) রিসোর্সকে ইনভোক করে, তাহলে ডেটা পরিবর্তন, ব্যবহার এবং বিলিংয়ের কোনও সম্ভাবনা থাকে না
  • অফলাইনে আরও ভাল সহায়তা, কারণ আপনার SDK কনফিগারেশন ডাউনলোড করার জন্য ইন্টারনেট অ্যাক্সেস করার প্রয়োজন নেই।

এক্সটেনশন ইনস্টল ও মূল্যায়ন করা

কোনও এক্সটেনশন আপনার প্রয়োজন পূরণ করছে কিনা তা মূল্যায়ন করতে Extensions এমুলেটর ব্যবহার করা সহজ।

ধরা যাক, আপনি ট্রিগার ইমেল (firestore-send-email) এক্সটেনশন ব্যবহার করতে আগ্রহী, যদিও নিম্নলিখিত ওয়ার্কফ্লোতে যেকোনও এক্সটেনশন কভার করা হয়। লোকাল এমুলেটরের সাথে রান করার সময়, ট্রিগার ইমেল অটোমেটিক Cloud Firestore এবং Cloud Functions এমুলেটর ব্যবহার করবে।

স্থানীয়ভাবে কোনও এক্সটেনশন মূল্যায়ন করতে:

  1. লোকাল এক্সটেনশন ম্যানিফেস্টে এক্সটেনশন যোগ করুন। এক্সটেনশন ম্যানিফেস্ট হল এক্সটেনশন ইনস্ট্যান্স এবং তাদের কনফিগারেশনের একটি তালিকা।

    firebase ext:install --local firebase/firestore-send-email

    উপরের কমান্ড রান করলে, আপনাকে firebase/firestore-send-email এক্সটেনশনের লেটেস্ট ভার্সন কনফিগার করতে এবং ম্যানিফেস্টে কনফিগারেশন সেভ করতে প্রম্পট করা হবে, তবে এটি আপনার প্রোজেক্টে কনফিগারেশন ডিপ্লয় করবে না। এই বিষয়ে আরও জানতে, ম্যানিফেস্টের মাধ্যমে এক্সটেনশন কনফিগারেশন ম্যানেজ করা দেখুন

  2. সাধারণত যেভাবে করেন সেইভাবে Local Emulator Suite শুরু করুন।

    firebase emulators:start

এখন, আপনার ম্যানিফেস্টে তালিকাভুক্ত firestore-send-email এক্সটেনশন ইনস্ট্যান্স ব্যবহার করে, Local Emulator Suite সেই এক্সটেনশনের সোর্স কোড ~/.cache/firebase/extensions-এ ডাউনলোড করবে। সোর্স ডাউনলোড করা হয়ে গেলে, Local Emulator Suite চালু হবে এবং আপনি এক্সটেনশনের ব্যাকগ্রাউন্ড ট্রিগার করা ফাংশনগুলির মধ্যে যেকোনও একটি ট্রিগার করতে পারবেন এবং আপনার অ্যাপের সাথে সেগুলির ইন্টিগ্রেশন পরীক্ষা করার জন্য আপনার অ্যাপকে Local Emulator Suite-এর সাথে কানেক্ট করতে পারবেন।

আপনি Emulator Suite UI ব্যবহার করে ইমেল ডকুমেন্ট সংগ্রহে ডেটা যোগ করতে পারেন এবং ট্রিগার ইমেল এক্সটেনশনের প্রয়োজন অনুযায়ী অন্যান্য ব্যাকএন্ড রিসোর্স সেট-আপ করতে পারেন।

অন্যথায়, কন্টিনিউয়াস ইন্টিগ্রেশন ওয়ার্কফ্লোর মতো নন-ইন্টার‍্যাক্টিভ টেস্টিং এনভায়রনমেন্টের জন্য, আপনি এক্সটেনশন মূল্যায়ন করার জন্য টেস্ট স্ক্রিপ্ট লিখতে পারেন যা অন্যান্য ধাপের মধ্যে প্রয়োজনীয় Cloud Firestore ডেটা পূরণ করে এবং ফাংশন ট্রিগার করে। তারপর আপনার টেস্ট স্ক্রিপ্ট এক্সিকিউট করতে Local Emulator Suite ইনভোক করতে হবে:

firebase emulators:exec my-test.sh

Extensions এমুলেটর দিয়ে টেস্টিং কীভাবে প্রোডাকশনের থেকে আলাদা হয়

Extensions এমুলেটর আপনাকে এমনভাবে এক্সটেনশন পরীক্ষা করতে দেয় যা প্রোডাকশন অভিজ্ঞতার সাথে অনেকটা মিলে যায়। তবে, প্রোডাকশন বিহেভিয়ারের থেকে কিছু পার্থক্য আছে।

Cloud IAM

Firebase Emulator Suite, রান করার জন্য IAM-সম্পর্কিত কোনও আচরণ রেপ্লিকেট বা সম্মান করার চেষ্টা করে না। এমুলেটর Firebase নিরাপত্তা নিয়ম মেনে চলে, তবে যেসব পরিস্থিতিতে সাধারণত IAM ব্যবহার করা হয়, যেমন Cloud Functions-এর জন্য সার্ভিস অ্যাকাউন্ট ও তার অনুমতি সেট করা, সেইসব ক্ষেত্রে এমুলেটর কনফিগার করা যায় না এবং আপনার ডেভেলপার মেশিনে গ্লোবালি উপলভ্য অ্যাকাউন্ট ব্যবহার করবে, যা সরাসরি লোকাল স্ক্রিপ্ট রান করার মতো।

ট্রিগার করার ধরনের সীমাবদ্ধতা

বর্তমানে, Firebase Local Emulator Suite শুধুমাত্র HTTP অনুরোধ-ট্রিগার করা ফাংশন, এক্সটেনশনের জন্য Eventarc কাস্টম ইভেন্ট ট্রিগার এবং Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication ও Pub/Sub-এর জন্য ব্যাকগ্রাউন্ড ইভেন্ট-ট্রিগার করা ফাংশন সাপোর্ট করে। অন্য ধরনের ট্রিগার করা ফাংশন ব্যবহার করে এমন এক্সটেনশন মূল্যায়ন করতে, আপনাকে একটি টেস্ট Firebase প্রোজেক্টে আপনার এক্সটেনশন ইনস্টল করতে হবে।

এরপর কী করতে হবে?

  • কিউরেট করা ভিডিওর সেট এবং বিস্তারিত কীভাবে-করবেন উদাহরণ দেখতে, Firebase Emulators Training Playlist অনুসরণ করুন।