আপনার অ্যাপের সাথে 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 Local Emulator Suite একটি একক Firebase প্রকল্পের জন্য পণ্য অনুকরণ করে।
ব্যবহার করার জন্য প্রজেক্ট নির্বাচন করতে, আপনি এমুলেটরগুলি শুরু করার আগে, CLI-এ আপনার কাজের ডিরেক্টরিতে firebase use
। অথবা, আপনি প্রতিটি এমুলেটর কমান্ডে --project
পতাকা পাস করতে পারেন।
Local Emulator Suite বাস্তব ফায়ারবেস প্রকল্প এবং ডেমো প্রকল্পের অনুকরণ সমর্থন করে।
প্রকল্পের ধরন | বৈশিষ্ট্য | এমুলেটরগুলির সাথে ব্যবহার করুন |
---|---|---|
রিয়াল | একটি আসল ফায়ারবেস প্রজেক্ট হল আপনি তৈরি এবং কনফিগার করেছেন (সম্ভবত Firebase কনসোলের মাধ্যমে)। বাস্তব প্রজেক্টে লাইভ রিসোর্স থাকে, যেমন ডাটাবেস ইনস্ট্যান্স, স্টোরেজ বাকেট, ফাংশন বা অন্য কোনো রিসোর্স যা আপনি সেই Firebase প্রোজেক্টের জন্য সেট আপ করেন। | বাস্তব ফায়ারবেস প্রকল্পগুলির সাথে কাজ করার সময়, আপনি যেকোন বা সমস্ত সমর্থিত পণ্যের জন্য এমুলেটর চালাতে পারেন। যে কোনো পণ্যের জন্য আপনি অনুকরণ করছেন না, আপনার অ্যাপ এবং কোড লাইভ রিসোর্সের সাথে ইন্টারঅ্যাক্ট করবে (ডাটাবেস ইনস্ট্যান্স, স্টোরেজ বাকেট, ফাংশন, ইত্যাদি)। |
ডেমো | একটি ডেমো ফায়ারবেস প্রজেক্টের কোনো বাস্তব ফায়ারবেস কনফিগারেশন নেই এবং কোনো লাইভ রিসোর্স নেই। এই প্রকল্পগুলি সাধারণত কোডল্যাব বা অন্যান্য টিউটোরিয়ালের মাধ্যমে অ্যাক্সেস করা হয়। ডেমো প্রজেক্টের জন্য প্রজেক্ট আইডিতে | ডেমো ফায়ারবেস প্রকল্পগুলির সাথে কাজ করার সময়, আপনার অ্যাপ এবং কোড শুধুমাত্র এমুলেটরগুলির সাথে ইন্টারঅ্যাক্ট করে৷ যদি আপনার অ্যাপটি এমন একটি সংস্থানের সাথে ইন্টারঅ্যাক্ট করার চেষ্টা করে যার জন্য একটি এমুলেটর চলছে না, সেই কোডটি ব্যর্থ হবে৷ |
আমরা আপনাকে যেখানেই সম্ভব ডেমো প্রকল্প ব্যবহার করার পরামর্শ দিই। সুবিধার মধ্যে রয়েছে:
- সহজ সেটআপ, যেহেতু আপনি ফায়ারবেস প্রজেক্ট তৈরি না করেই এমুলেটর চালাতে পারবেন
- শক্তিশালী নিরাপত্তা, যেহেতু আপনার কোড ভুলবশত নন-ইমুলেটেড (উৎপাদন) সংস্থানগুলিকে আমন্ত্রণ জানায়, তবে ডেটা পরিবর্তন, ব্যবহার এবং বিলিং এর কোন সুযোগ নেই
- ভাল অফলাইন সমর্থন, যেহেতু আপনার SDK কনফিগারেশন ডাউনলোড করতে ইন্টারনেট অ্যাক্সেস করার প্রয়োজন নেই৷
একটি এক্সটেনশন ইনস্টল করুন এবং মূল্যায়ন করুন
Extensions এমুলেটর ব্যবহার করে একটি এক্সটেনশন আপনার চাহিদা পূরণ করে কিনা তা মূল্যায়ন করা সহজ।
ধরুন আপনি ট্রিগার ইমেল ( firestore-send-email
) এক্সটেনশনে আগ্রহী, যদিও নিচের ওয়ার্কফ্লো যেকোনো এক্সটেনশনকে কভার করে। স্থানীয় এমুলেটরগুলির সাথে চালানো হলে, ট্রিগার ইমেল স্বয়ংক্রিয়ভাবে Cloud Firestore এবং Cloud Functions এমুলেটর ব্যবহার করবে।
স্থানীয়ভাবে একটি এক্সটেনশন মূল্যায়ন করতে:
স্থানীয় এক্সটেনশন ম্যানিফেস্টে এক্সটেনশন যোগ করুন। একটি এক্সটেনশন ম্যানিফেস্ট হল এক্সটেনশন উদাহরণ এবং তাদের কনফিগারেশনের একটি তালিকা।
firebase ext:install --local firebase/firestore-send-email
উপরের কমান্ডটি চালানো আপনাকে
firebase/firestore-send-email
এক্সটেনশনের সর্বশেষ সংস্করণ কনফিগার করতে এবং ম্যানিফেস্টে কনফিগারেশন সংরক্ষণ করতে অনুরোধ করবে, কিন্তু এটি আপনার প্রকল্পে কনফিগারেশন স্থাপন করবে না। এই সম্পর্কে আরও জানতে, ম্যানিফেস্টের সাথে এক্সটেনশন কনফিগারেশন পরিচালনা করুন দেখুন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 এমুলেটর আপনাকে এক্সটেনশনগুলিকে এমনভাবে পরীক্ষা করতে দেয় যা উত্পাদন অভিজ্ঞতার সাথে ঘনিষ্ঠভাবে মেলে। যাইহোক, উত্পাদন আচরণ থেকে কিছু পার্থক্য আছে।
ক্লাউড আইএএম
ফায়ারবেস এমুলেটর স্যুট চালানোর জন্য কোনো IAM-সম্পর্কিত আচরণ প্রতিলিপি বা সম্মান করার চেষ্টা করে না। এমুলেটরগুলি প্রদত্ত ফায়ারবেস সুরক্ষা নিয়মগুলি মেনে চলে, কিন্তু যে পরিস্থিতিতে সাধারণত IAM ব্যবহার করা হবে, উদাহরণস্বরূপ ক্লাউড ফাংশনগুলিকে পরিষেবা অ্যাকাউন্টের জন্য এবং এইভাবে অনুমতিগুলি সেট করার জন্য, এমুলেটরটি কনফিগারযোগ্য নয় এবং আপনার বিকাশকারী মেশিনে বিশ্বব্যাপী উপলব্ধ অ্যাকাউন্ট ব্যবহার করবে, সরাসরি স্থানীয় স্ক্রিপ্ট চালানোর অনুরূপ।
ট্রিগারিং টাইপ সীমাবদ্ধতা
বর্তমানে, Firebase Local Emulator Suite শুধুমাত্র HTTP অনুরোধ-ট্রিগার করা ফাংশন, এক্সটেনশনের জন্য Eventarc কাস্টম ইভেন্ট ট্রিগার এবং Cloud Firestore , Realtime Database , Cloud Storage for Firebase , Authentication এবং Pub/Sub জন্য ব্যাকগ্রাউন্ড ইভেন্ট-ট্রিগার করা ফাংশন সমর্থন করে। অন্য ধরনের ট্রিগার করা ফাংশন ব্যবহার করে এমন এক্সটেনশনের মূল্যায়ন করতে, আপনাকে একটি পরীক্ষা ফায়ারবেস প্রকল্পে আপনার এক্সটেনশন ইনস্টল করতে হবে।
এরপর কি?
- ভিডিওর একটি কিউরেটেড সেট এবং কীভাবে-করবেন তার বিস্তারিত উদাহরণের জন্য, ফায়ারবেস এমুলেটর ট্রেনিং প্লেলিস্ট অনুসরণ করুন।
আপনার অ্যাপের সাথে 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 Local Emulator Suite একটি একক Firebase প্রকল্পের জন্য পণ্য অনুকরণ করে।
ব্যবহার করার জন্য প্রজেক্ট নির্বাচন করতে, আপনি এমুলেটরগুলি শুরু করার আগে, CLI-এ আপনার কাজের ডিরেক্টরিতে firebase use
। অথবা, আপনি প্রতিটি এমুলেটর কমান্ডে --project
পতাকা পাস করতে পারেন।
Local Emulator Suite বাস্তব ফায়ারবেস প্রকল্প এবং ডেমো প্রকল্পের অনুকরণ সমর্থন করে।
প্রকল্পের ধরন | বৈশিষ্ট্য | এমুলেটরগুলির সাথে ব্যবহার করুন |
---|---|---|
রিয়াল | একটি আসল ফায়ারবেস প্রজেক্ট হল আপনি তৈরি এবং কনফিগার করেছেন (সম্ভবত Firebase কনসোলের মাধ্যমে)। বাস্তব প্রজেক্টে লাইভ রিসোর্স থাকে, যেমন ডাটাবেস ইনস্ট্যান্স, স্টোরেজ বাকেট, ফাংশন বা অন্য কোনো রিসোর্স যা আপনি সেই Firebase প্রোজেক্টের জন্য সেট আপ করেন। | বাস্তব ফায়ারবেস প্রকল্পগুলির সাথে কাজ করার সময়, আপনি যেকোন বা সমস্ত সমর্থিত পণ্যের জন্য এমুলেটর চালাতে পারেন। যে কোনো পণ্যের জন্য আপনি অনুকরণ করছেন না, আপনার অ্যাপ এবং কোড লাইভ রিসোর্সের সাথে ইন্টারঅ্যাক্ট করবে (ডাটাবেস ইনস্ট্যান্স, স্টোরেজ বাকেট, ফাংশন, ইত্যাদি)। |
ডেমো | একটি ডেমো ফায়ারবেস প্রজেক্টের কোনো বাস্তব ফায়ারবেস কনফিগারেশন নেই এবং কোনো লাইভ রিসোর্স নেই। এই প্রকল্পগুলি সাধারণত কোডল্যাব বা অন্যান্য টিউটোরিয়ালের মাধ্যমে অ্যাক্সেস করা হয়। ডেমো প্রজেক্টের জন্য প্রজেক্ট আইডিতে | ডেমো ফায়ারবেস প্রকল্পগুলির সাথে কাজ করার সময়, আপনার অ্যাপ এবং কোড শুধুমাত্র এমুলেটরগুলির সাথে ইন্টারঅ্যাক্ট করে৷ যদি আপনার অ্যাপটি এমন একটি সংস্থানের সাথে ইন্টারঅ্যাক্ট করার চেষ্টা করে যার জন্য একটি এমুলেটর চলছে না, সেই কোডটি ব্যর্থ হবে৷ |
আমরা আপনাকে যেখানেই সম্ভব ডেমো প্রকল্প ব্যবহার করার পরামর্শ দিই। সুবিধার মধ্যে রয়েছে:
- সহজ সেটআপ, যেহেতু আপনি ফায়ারবেস প্রজেক্ট তৈরি না করেই এমুলেটর চালাতে পারবেন
- শক্তিশালী নিরাপত্তা, যেহেতু আপনার কোড ভুলবশত নন-ইমুলেটেড (উৎপাদন) সংস্থানগুলিকে আমন্ত্রণ জানায়, তবে ডেটা পরিবর্তন, ব্যবহার এবং বিলিং এর কোন সুযোগ নেই
- ভাল অফলাইন সমর্থন, যেহেতু আপনার SDK কনফিগারেশন ডাউনলোড করতে ইন্টারনেট অ্যাক্সেস করার প্রয়োজন নেই৷
একটি এক্সটেনশন ইনস্টল করুন এবং মূল্যায়ন করুন
Extensions এমুলেটর ব্যবহার করে একটি এক্সটেনশন আপনার চাহিদা পূরণ করে কিনা তা মূল্যায়ন করা সহজ।
ধরুন আপনি ট্রিগার ইমেল ( firestore-send-email
) এক্সটেনশনে আগ্রহী, যদিও নিচের ওয়ার্কফ্লো যেকোনো এক্সটেনশনকে কভার করে। স্থানীয় এমুলেটরগুলির সাথে চালানো হলে, ট্রিগার ইমেল স্বয়ংক্রিয়ভাবে Cloud Firestore এবং Cloud Functions এমুলেটর ব্যবহার করবে।
স্থানীয়ভাবে একটি এক্সটেনশন মূল্যায়ন করতে:
স্থানীয় এক্সটেনশন ম্যানিফেস্টে এক্সটেনশন যোগ করুন। একটি এক্সটেনশন ম্যানিফেস্ট হল এক্সটেনশন উদাহরণ এবং তাদের কনফিগারেশনের একটি তালিকা।
firebase ext:install --local firebase/firestore-send-email
উপরের কমান্ডটি চালানো আপনাকে
firebase/firestore-send-email
এক্সটেনশনের সর্বশেষ সংস্করণ কনফিগার করতে এবং ম্যানিফেস্টে কনফিগারেশন সংরক্ষণ করতে অনুরোধ করবে, কিন্তু এটি আপনার প্রকল্পে কনফিগারেশন স্থাপন করবে না। এই সম্পর্কে আরও জানতে, ম্যানিফেস্টের সাথে এক্সটেনশন কনফিগারেশন পরিচালনা করুন দেখুন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 এমুলেটর আপনাকে এক্সটেনশনগুলিকে এমনভাবে পরীক্ষা করতে দেয় যা উত্পাদন অভিজ্ঞতার সাথে ঘনিষ্ঠভাবে মেলে। যাইহোক, উত্পাদন আচরণ থেকে কিছু পার্থক্য আছে।
ক্লাউড আইএএম
ফায়ারবেস এমুলেটর স্যুট চালানোর জন্য কোনো IAM-সম্পর্কিত আচরণ প্রতিলিপি বা সম্মান করার চেষ্টা করে না। এমুলেটরগুলি প্রদত্ত ফায়ারবেস সুরক্ষা নিয়মগুলি মেনে চলে, কিন্তু যে পরিস্থিতিতে সাধারণত IAM ব্যবহার করা হবে, উদাহরণস্বরূপ ক্লাউড ফাংশনগুলিকে পরিষেবা অ্যাকাউন্টের জন্য এবং এইভাবে অনুমতিগুলি সেট করার জন্য, এমুলেটরটি কনফিগারযোগ্য নয় এবং আপনার বিকাশকারী মেশিনে বিশ্বব্যাপী উপলব্ধ অ্যাকাউন্ট ব্যবহার করবে, সরাসরি স্থানীয় স্ক্রিপ্ট চালানোর অনুরূপ।
ট্রিগারিং টাইপ সীমাবদ্ধতা
বর্তমানে, Firebase Local Emulator Suite শুধুমাত্র HTTP অনুরোধ-ট্রিগার করা ফাংশন, এক্সটেনশনের জন্য Eventarc কাস্টম ইভেন্ট ট্রিগার এবং Cloud Firestore , Realtime Database , Cloud Storage for Firebase , Authentication এবং Pub/Sub জন্য ব্যাকগ্রাউন্ড ইভেন্ট-ট্রিগার করা ফাংশন সমর্থন করে। অন্য ধরনের ট্রিগার করা ফাংশন ব্যবহার করে এমন এক্সটেনশনের মূল্যায়ন করতে, আপনাকে একটি পরীক্ষা ফায়ারবেস প্রকল্পে আপনার এক্সটেনশন ইনস্টল করতে হবে।
এরপর কি?
- ভিডিওর একটি কিউরেটেড সেট এবং কীভাবে-করবেন তার বিস্তারিত উদাহরণের জন্য, ফায়ারবেস এমুলেটর ট্রেনিং প্লেলিস্ট অনুসরণ করুন।