একটি Firebase এক্সটেনশন HTTP অনুরোধের জবাবে অথবা Firebase Cloud Messaging, Cloud Firestore, বা Pub/Sub-এর মতো অন্যান্য Firebase ও Google পণ্য থেকে ইভেন্ট ট্রিগার করার মাধ্যমে একটি নির্দিষ্ট কাজ বা একাধিক কাজ সম্পাদন করে।
আপনি ফায়ারবেস এক্সটেনশনস হাব-এ ব্যক্তিগত ব্যবহারের জন্য বা সবার সাথে শেয়ার করার জন্য আপনার নিজস্ব এক্সটেনশন তৈরি করতে পারেন। উদাহরণস্বরূপ, আপনার এক্সটেনশনটি এমন কোনো নির্দিষ্ট কাজ করতে পারে যা আপনার অ্যাপের নিয়মিত প্রয়োজন হয়, অথবা এটি আপনার কোম্পানির কোনো একটি এপিআই (API) অ্যাক্সেস করা সহজ করে তুলতে পারে। আপনার এক্সটেনশনটি তৈরি করার পর, আপনি এটি অন্যদের সাথে শেয়ার করতে পারেন। সেই ব্যবহারকারীরা তাদের নিজস্ব ফায়ারবেস প্রজেক্টে ব্যবহারের জন্য এক্সটেনশনটি ইনস্টল এবং কনফিগার করতে পারবেন।
একটি সম্প্রসারণের কাঠামো
একটি এক্সটেনশনের তিনটি প্রধান উপাদান রয়েছে বলে আপনি ভাবতে পারেন:
- জাভাস্ক্রিপ্ট বা টাইপস্ক্রিপ্টে লেখা ক্লাউড ফাংশন কোড
- মেটাডেটা যা আপনার এক্সটেনশন বর্ণনা করে
- আপনার ব্যবহারকারীদের আপনার এক্সটেনশন কনফিগার ও ব্যবহার করতে সাহায্য করার জন্য ডকুমেন্টেশন।
একটি এক্সটেনশন তৈরি করতে, আপনাকে এই উপাদানগুলোকে নিম্নলিখিত কাঠামোতে একত্রিত করতে হবে:
example-extension
├── functions
│ ├── integration-tests
│ │ ├── extensions
│ │ │ └── example-extension.env
│ │ ├── firebase.json
│ │ └── integration-test.spec.js
│ ├── index.js
│ └── package.json
├── README.md
├── PREINSTALL.md
├── POSTINSTALL.md
├── CHANGELOG.md
├── icon.png
└── extension.yaml
-
functionsডিরেক্টরিতে আপনার জাভাস্ক্রিপ্ট বা টাইপস্ক্রিপ্টে লেখা ক্লাউড ফাংশনস কোড থাকে। এই কোডটিই ফায়ারবেস এবং গুগল পরিষেবা দ্বারা ট্রিগার হওয়া ইভেন্টের প্রতিক্রিয়ায় এক্সটেনশনটির কাজগুলো সম্পাদন করে। -
extension.yamlফাইলটিতে আপনার এক্সটেনশন সম্পর্কিত মেটাডেটা থাকে, যেমন এর ট্রিগার এবং IAM অ্যাক্সেস রোল, সেইসাথে এমন যেকোনো প্যারামিটার যা আপনি ব্যবহারকারী-কনফিগারযোগ্য করতে চান। -
PREINSTALL,POSTINSTALLএবংCHANGELOGফাইলগুলো হলো ন্যূনতম ডকুমেন্টেশন যা আপনার এক্সটেনশনে অবশ্যই থাকতে হবে। এই ফাইলগুলো আপনার ব্যবহারকারীদের জানতে সাহায্য করে যে আপনার এক্সটেনশনটি কী কাজ করে, কীভাবে এটি ব্যবহার করতে হয় এবং আপনি কী কী আপডেট করেছেন। ব্যবহারকারীদের আপনার এক্সটেনশনটি চিনতে সাহায্য করার জন্য আপনার একটি আইকনও দেওয়া উচিত। ব্যবহারকারীরা যখন আপনার এক্সটেনশনটি অন্বেষণ, ইনস্টল এবং পরিচালনা করেন, তখন Firebase কনসোল, Firebase CLI এবং Extensions Hub এই ফাইলগুলোর বিষয়বস্তু প্রদর্শন করে।
আপনার এক্সটেনশনটি তৈরি করার পরে, আপনি Firebase CLI ব্যবহার করে এটিকে কোনো প্রজেক্টে ইনস্টল করতে পারেন অথবা এক্সটেনশনস হাবে প্রকাশ করতে পারেন, যেখান থেকে যে কেউ এটি খুঁজে নিয়ে তাদের প্রজেক্টে ইনস্টল করতে পারবে।
আমার এক্সটেনশনটি কোন কোন পণ্যের সাথে ইন্টারঅ্যাক্ট করতে পারে?
যেহেতু একটি Firebase এক্সটেনশন ক্লাউড ফাংশন ব্যবহার করে তার কাজ করে, তাই সম্ভাব্য ইন্টিগ্রেশনের প্রশ্নটিকে আপনি দুটি উপায়ে ভাবতে পারেন: কোন পণ্যগুলো আমার এক্সটেনশনের ফাংশনগুলোকে ট্রিগার করতে পারে? এবং একবার ট্রিগার হলে, আমার এক্সটেনশনের ফাংশনগুলো কোন পণ্যগুলোর সাথে ইন্টারঅ্যাক্ট করতে পারে?
সমর্থিত ফাংশন ট্রিগার
ম্যানুয়াল ট্রিগার
প্রথমত, আপনি ম্যানুয়ালি একটি ফাংশন চালু করতে পারেন। ফায়ারবেস এক্সটেনশন এবং ক্লাউড ফাংশন ম্যানুয়ালি ফাংশন চালু করার দুটি উপায় সমর্থন করে:
- HTTP ট্রিগার: একটি HTTP এন্ডপয়েন্টে একটি ফাংশন স্থাপন করা।
- কলযোগ্য ফাংশন: Firebase ক্লায়েন্ট SDK ব্যবহার করে আপনার iOS, Android, বা ওয়েব ক্লায়েন্ট কোড থেকে সরাসরি আপনার ক্লাউড ফাংশনগুলোকে কল করুন।
আপনার এক্সটেনশন থেকে HTTP এন্ডপয়েন্টগুলো উন্মুক্ত করার মাধ্যমে, এটি ওয়েবহুক সমর্থন করে এমন যেকোনো ওয়েব সার্ভিসের সাথে সংযুক্ত হতে পারে। কলযোগ্য ফাংশনগুলোর সাহায্যে, আপনার এক্সটেনশন ইনস্টলকারী ব্যবহারকারীরা আপনার এক্সটেনশন দ্বারা বাস্তবায়িত API অ্যাক্সেস করার জন্য Firebase SDK-কে একটি ক্লায়েন্ট লাইব্রেরি হিসেবে ব্যবহার করতে পারেন।
ফায়ারবেস পরিষেবা ট্রিগার
অধিকাংশ Firebase প্রোডাক্ট এমন ইভেন্ট নির্গত করে যা কোনো এক্সটেনশনের ক্লাউড ফাংশনগুলোকে সক্রিয় করতে পারে।
- অ্যানালিটিক্স: যখন অ্যানালিটিক্স কোনো ইভেন্ট লগ করে তখন ফাংশনগুলো ট্রিগার করে।
- অ্যাপ ডিস্ট্রিবিউশন: যখন অ্যাপ ডিস্ট্রিবিউশন একটি অ্যালার্ট ট্রিগার করে, তখন ফাংশনগুলো ট্রিগার করুন।
- প্রমাণীকরণ: ব্যবহারকারীরা অ্যাকাউন্ট তৈরি ও মুছে ফেলার সময় ফাংশনগুলো সক্রিয় হয়।
- ক্লাউড ফায়ারস্টোর: পৃষ্ঠা তৈরি, আপডেট বা মুছে ফেলা হলে ফাংশন ট্রিগার করা।
- ক্লাউড স্টোরেজ : বাকেট থেকে অবজেক্ট আপলোড, আর্কাইভ বা ডিলিট করা হলে ফাংশনগুলো ট্রিগার করে।
- ক্র্যাশলিটিক্স: যখন ক্র্যাশলিটিক্স কোনো অ্যালার্ট ট্রিগার করে, তখন ফাংশনগুলো সক্রিয় হয়।
- পারফরম্যান্স মনিটরিং: যখন পারফরম্যান্স মনিটরিং একটি অ্যালার্ট ট্রিগার করে তখন ফাংশনগুলো সক্রিয় হয়।
- রিয়েলটাইম ডেটাবেস: ডেটা তৈরি, আপডেট বা মুছে ফেলা হলে ফাংশনগুলো সক্রিয় হয়।
- রিমোট কনফিগ: কোনো প্যারামিটার আপডেট হলে ফাংশনগুলো ট্রিগার করে।
- টেস্ট ল্যাব: যখন টেস্ট ল্যাব কোনো অ্যালার্ট ট্রিগার করে, তখন ফাংশনগুলো ট্রিগার হয়।
গুগল ক্লাউড পরিষেবা ট্রিগার করে
একটি এক্সটেনশনে এমন ফাংশনও অন্তর্ভুক্ত থাকতে পারে যা ফায়ারবেস-বহির্ভূত একাধিক গুগল ক্লাউড পরিষেবা চালু করে:
- ক্লাউড পাব/সাব : একটি এক্সটেনশনে এমন ফাংশন অন্তর্ভুক্ত থাকতে পারে, যা কোনো কনফিগারযোগ্য পাব/সাব টপিকে ইভেন্ট পোস্ট করা হলে সক্রিয় হয়।
- ক্লাউড শিডিউলার : একটি এক্সটেনশনে এমন ফাংশন অন্তর্ভুক্ত থাকতে পারে যা একটি নির্দিষ্ট সময়সূচী অনুযায়ী চলে।
- ক্লাউড টাস্কস : একটি এক্সটেনশনে এমন ফাংশন অন্তর্ভুক্ত থাকতে পারে যা ক্লাউড টাস্কস ব্যবহার করে কিউতে রাখা যায়। ফায়ারবেস এক্সটেনশনস এই সক্ষমতা ব্যবহার করে আপনাকে, একজন এক্সটেনশন লেখক হিসেবে, এমন ফাংশন লেখার সুযোগ দেয় যা একটি এক্সটেনশনের "লাইফসাইকেল" ইভেন্টগুলোতে সাড়া দেয়: যেমন কোনো প্রজেক্টে প্রথমবারের মতো ইনস্টল হওয়া, নতুন সংস্করণে আপগ্রেড হওয়া এবং পুনরায় কনফিগার করা।
- ইভেন্টআর্ক : একটি এক্সটেনশনে এমন ফাংশন অন্তর্ভুক্ত থাকতে পারে যা একটি কনফিগারযোগ্য ইভেন্টআর্ক চ্যানেলে ইভেন্ট প্রকাশিত হলে ট্রিগার হয়; বিপরীতভাবে, একটি এক্সটেনশন কোনো ইভেন্টআর্ক চ্যানেলে তার নিজস্ব ইভেন্ট প্রকাশ করতে পারে, যাতে ব্যবহারকারীরা এক্সটেনশনটির ইভেন্ট থেকে ট্রিগার হওয়া তাদের নিজস্ব ফাংশন সংজ্ঞায়িত করতে পারে।
ফাংশন থেকে সমর্থিত
একবার কোনো এক্সটেনশনের ক্লাউড ফাংশন চালু হয়ে গেলে, এর সাথে ইন্টিগ্রেশনের সুযোগ সাধারণত সীমাহীন হয়ে যায়। একটি ক্লাউড ফাংশন থেকে আপনি যা যা করতে পারেন, তার কিছু উল্লেখযোগ্য দিক নিচে দেওয়া হলো:
- সমর্থিত IAM রোল ব্যবহার করে এমন যেকোনো Firebase বা Google Cloud পরিষেবা পড়ুন, লিখুন এবং অন্যভাবে ইন্টারঅ্যাক্ট করুন।
- ওয়েব এপিআই (API) প্রদানকারী যেকোনো থার্ড-পার্টি সার্ভিসের সাথে কাজ করুন।
- আপনি যদি একটি ওয়েব এপিআই প্রদান করেন, তবে আপনার নিজস্ব কাস্টম পরিষেবাগুলো নিয়ে কাজ করুন।
- TensorFlow.js , Express.js সহ বেশিরভাগ জাভাস্ক্রিপ্ট লাইব্রেরি চালান।
কীভাবে একটি এক্সটেনশন তৈরি করবেন
গেট স্টার্টেড টিউটোরিয়ালটি আপনাকে একটি সম্পূর্ণ এক্সটেনশন তৈরি, পরীক্ষা এবং প্রকাশ করার প্রক্রিয়াটি ধাপে ধাপে দেখিয়ে দেয়, এবং এটি শেখার জন্য এটিই প্রস্তাবিত উপায়।
একবার সূচনা নির্দেশিকাটি পড়ে নেওয়ার পর, আপনি প্রতিটি বিষয়ের আলাদা নির্দেশিকাগুলো দেখতে পারেন, যেখানে আপনার নিজের এক্সটেনশন তৈরির সাথে জড়িত প্রতিটি কাজ ব্যাখ্যা করা হয়েছে:
- একটি এক্সটেনশনের জন্য ফাংশন লিখুন
- একটি এক্সটেনশনে প্যারামিটার ব্যবহার করুন
- একটি এক্সটেনশনের জন্য উপযুক্ত অ্যাক্সেস সেট আপ করুন
- এক্সটেনশন লাইফসাইকেল ইভেন্টগুলিতে সাড়া দিন
- একটি এক্সটেনশনে ব্যবহারকারী হুক যোগ করুন
- আপনার এক্সটেনশনের জন্য ব্যবহারকারী ডকুমেন্টেশন তৈরি করুন
- এক্সটেনশন হাবে একটি এক্সটেনশন প্রকাশ করুন
- সম্পূর্ণ extension.yaml রেফারেন্স