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

আপনার অ্যাপের সাথে 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 জন্য এমুলেটর ব্যবহার করে ব্যাকগ্রাউন্ড ইভেন্ট-ট্রিগারড ফাংশন এবং Cloud Functions v2-এ বাস্তবায়িত ইভেন্টটার্ক-ট্রিগারড ফাংশন।

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

Firebase Local Emulator Suite একটি একক ফায়ারবেস প্রকল্পের জন্য পণ্য অনুকরণ করে।

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

Local Emulator Suite বাস্তব ফায়ারবেস প্রকল্প এবং ডেমো প্রকল্পের অনুকরণ সমর্থন করে।

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

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

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

আসল ফায়ারবেস প্রকল্পগুলির সাথে কাজ করার সময়, আপনি যেকোনো বা সমস্ত সমর্থিত পণ্যের জন্য এমুলেটর চালাতে পারেন।

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

ডেমো

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

ডেমো প্রকল্পের জন্য প্রকল্প আইডিগুলিতে demo- উপসর্গ থাকে।

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

আমরা আপনাকে যেখানেই সম্ভব ডেমো প্রকল্প ব্যবহার করার পরামর্শ দিচ্ছি। সুবিধার মধ্যে রয়েছে:

  • সহজ সেটআপ, যেহেতু আপনি ফায়ারবেস প্রকল্প তৈরি না করেই এমুলেটরগুলি চালাতে পারবেন
  • শক্তিশালী নিরাপত্তা, যেহেতু আপনার কোড যদি ভুলবশত অ-অনুকরণীয় (উৎপাদন) সংস্থানগুলিকে ব্যবহার করে, তাহলে ডেটা পরিবর্তন, ব্যবহার এবং বিলিং এর কোনও সম্ভাবনা নেই।
  • আরও ভালো অফলাইন সাপোর্ট, যেহেতু আপনার 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 এ ডাউনলোড করবে। একবার soures ডাউনলোড হয়ে গেলে, Local Emulator Suite শুরু হবে এবং আপনি এক্সটেনশনের যেকোনো ব্যাকগ্রাউন্ড ট্রিগার করা ফাংশন ট্রিগার করতে পারবেন এবং আপনার অ্যাপের সাথে তাদের ইন্টিগ্রেশন পরীক্ষা করার জন্য Local Emulator Suite এর সাথে আপনার অ্যাপটি সংযুক্ত করতে পারবেন।

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

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

firebase emulators:exec my-test.sh

Extensions এমুলেটর দিয়ে পরীক্ষা কীভাবে উৎপাদন থেকে আলাদা

Extensions এমুলেটর আপনাকে এমনভাবে এক্সটেনশন পরীক্ষা করতে দেয় যা উৎপাদন অভিজ্ঞতার সাথে ঘনিষ্ঠভাবে মিলে যায়। তবে, উৎপাদন আচরণের সাথে কিছু পার্থক্য রয়েছে।

ক্লাউড আইএএম

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

ট্রিগারিং টাইপ সীমাবদ্ধতা

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

এরপর কী?

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