এক্সটেনশন প্রকাশক ওভারভিউ

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

আপনি ব্যক্তিগত ব্যবহারের জন্য বা Firebase এক্সটেনশন হাবে বিশ্বের সাথে শেয়ার করার জন্য আপনার নিজস্ব এক্সটেনশন তৈরি করতে পারেন। উদাহরণস্বরূপ, আপনার এক্সটেনশন একটি নির্দিষ্ট কাজ সম্পাদন করতে পারে যা আপনার অ্যাপের নিয়মিত প্রয়োজন হয়, অথবা এটি আপনার কোম্পানির 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 ডিরেক্টরিতে জাভাস্ক্রিপ্ট বা টাইপস্ক্রিপ্টে আপনার ক্লাউড ফাংশন কোড থাকে। এটি সেই কোড যা Firebase এবং Google পরিষেবাগুলির দ্বারা ট্রিগার হওয়া ইভেন্টগুলির প্রতিক্রিয়া হিসাবে এক্সটেনশনের কাজগুলি সম্পাদন করে৷
  • extension.yaml ফাইলে আপনার এক্সটেনশন সম্পর্কে মেটাডেটা রয়েছে, যেমন এর ট্রিগার এবং IAM অ্যাক্সেসের ভূমিকা, সেইসাথে আপনি ব্যবহারকারী-কনফিগারযোগ্য হতে চান এমন কোনো প্যারামিটার।
  • PREINSTALL , POSTINSTALL , এবং CHANGELOG ফাইলগুলি হল আপনার এক্সটেনশনের ন্যূনতম ডকুমেন্টেশন। এই ফাইলগুলি আপনার ব্যবহারকারীদের আপনার এক্সটেনশন কী করে, কীভাবে এটি ব্যবহার করতে হয় এবং আপনি কী আপডেট করেছেন তা শিখতে সাহায্য করে৷ ব্যবহারকারীদের আপনার এক্সটেনশন চিনতে সাহায্য করার জন্য আপনাকে একটি আইকনও প্রদান করা উচিত। Firebase কনসোল, Firebase CLI, এবং Extensions Hub এই ফাইলগুলির বিষয়বস্তু প্রদর্শন করে যখন ব্যবহারকারীরা আপনার এক্সটেনশন অন্বেষণ, ইনস্টল এবং পরিচালনা করে।

আপনি আপনার এক্সটেনশন তৈরি করার পরে, আপনি এটিকে একটি প্রকল্পে ইনস্টল করতে বা এক্সটেনশন হাবে প্রকাশ করতে Firebase CLI ব্যবহার করতে পারেন, যেখানে যে কেউ তাদের প্রকল্পগুলিতে এটি আবিষ্কার এবং ইনস্টল করতে পারে৷

আমার এক্সটেনশন কোন পণ্যগুলির সাথে যোগাযোগ করতে পারে?

যেহেতু একটি ফায়ারবেস এক্সটেনশন ক্লাউড ফাংশন ব্যবহার করে তার কাজ করে, আপনি সম্ভাব্য ইন্টিগ্রেশনের প্রশ্ন দুটি উপায়ে ভাবতে পারেন: কোন পণ্যগুলি আমার এক্সটেনশনের ফাংশনগুলিকে ট্রিগার করতে পারে? এবং একবার ট্রিগার হলে, আমার এক্সটেনশনের ফাংশনগুলি কোন পণ্যগুলির সাথে ইন্টারঅ্যাক্ট করতে পারে?

সমর্থিত ফাংশন ট্রিগার

ম্যানুয়াল ট্রিগার

প্রথমত, আপনি ম্যানুয়ালি একটি ফাংশন ট্রিগার করতে পারেন। ফায়ারবেস এক্সটেনশন এবং ক্লাউড ফাংশনগুলি ম্যানুয়ালি ফাংশন ট্রিগার করার দুটি উপায় সমর্থন করে:

  • HTTP ট্রিগার: একটি HTTP এন্ডপয়েন্টে একটি ফাংশন স্থাপন করুন
  • কলযোগ্য ফাংশন: Firebase ক্লায়েন্ট SDK ব্যবহার করে সরাসরি আপনার iOS, Android, বা ওয়েব ক্লায়েন্ট কোড থেকে আপনার ক্লাউড ফাংশনগুলিতে কল করুন।

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

ফায়ারবেস পরিষেবা ট্রিগার

বেশিরভাগ ফায়ারবেস পণ্য ইভেন্টগুলি নির্গত করে যা একটি এক্সটেনশনের ক্লাউড ফাংশনগুলিকে ট্রিগার করতে পারে৷

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

Google ক্লাউড পরিষেবা ট্রিগার করে

একটি এক্সটেনশন এমন ফাংশনও অন্তর্ভুক্ত করতে পারে যা বেশ কয়েকটি নন-ফায়ারবেস Google ক্লাউড পরিষেবাগুলিকে ট্রিগার করে:

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

ফাংশন থেকে সমর্থিত

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

  • সমর্থিত IAM ভূমিকা ব্যবহার করে এমন যেকোনো Firebase বা Google ক্লাউড পরিষেবার সাথে পড়ুন, লিখুন এবং অন্যথায় ইন্টারঅ্যাক্ট করুন।
  • ওয়েব API প্রদান করে এমন কোনো তৃতীয় পক্ষের পরিষেবার সাথে কাজ করুন।
  • আপনি যদি একটি ওয়েব API প্রদান করেন তবে আপনার কাস্টম পরিষেবাগুলির সাথে কাজ করুন৷
  • TensorFlow.js , Express.js, ইত্যাদি সহ বেশিরভাগ জাভাস্ক্রিপ্ট লাইব্রেরি চালান।

কিভাবে একটি এক্সটেনশন নির্মাণ

শুরু করুন টিউটোরিয়াল আপনাকে একটি সম্পূর্ণ এক্সটেনশন তৈরি, পরীক্ষা এবং প্রকাশ করার প্রক্রিয়ার মধ্য দিয়ে নিয়ে যায় এবং এটি কীভাবে তৈরি করতে হয় তা শেখার প্রস্তাবিত উপায়।

এবার শুরু করা যাক

আপনি একবার শুরু করার নির্দেশিকা দিয়ে যাওয়ার পরে, আপনি পৃথক বিষয় নির্দেশিকাগুলি উল্লেখ করতে পারেন, যা আপনার নিজস্ব এক্সটেনশন তৈরিতে জড়িত প্রতিটি কাজ ব্যাখ্যা করে: