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

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

এই নির্দেশিকাটি অনুমান করে যে আপনি Firebase এক্সটেনশনগুলির সাথে পরিচিত এবং কীভাবে সেগুলিকে আপনার Firebase অ্যাপে ব্যবহার করবেন

এক্সটেনশন এমুলেটর দিয়ে আমি কি করতে পারি?

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

একটি ফায়ারবেস প্রকল্প বেছে নিন

Firebase স্থানীয় এমুলেটর স্যুট একটি একক Firebase প্রকল্পের জন্য পণ্য অনুকরণ করে।

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

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

প্রকল্পের ধরন বৈশিষ্ট্য এমুলেটরগুলির সাথে ব্যবহার করুন
রিয়াল

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

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

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

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

ডেমো

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

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

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

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

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

একটি এক্সটেনশন ইনস্টল করুন এবং মূল্যায়ন করুন

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

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

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

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

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

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

  2. স্থানীয় এমুলেটর স্যুটটি শুরু করুন যেমন আপনি সাধারণত করেন।

    firebase emulators:start

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

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

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

firebase emulators:exec my-test.sh

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

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

ক্লাউড আইএএম

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

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

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

এরপর কী?