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

আপনি Firebase কনসোল, Firebase CLI (কমান্ড-লাইন ইন্টারফেস) ব্যবহার করে অথবা একটি স্বয়ংক্রিয়ভাবে তৈরি SDK ব্যবহার করে যেকোনো অফিসিয়াল Firebase এক্সটেনশন ইনস্টল (এবং পরিচালনা ) করতে পারেন।

প্রতিটি ইনস্টলেশন পদ্ধতির জন্য সমর্থিত ক্রিয়াগুলির মধ্যে পার্থক্যগুলি পর্যালোচনা করতে ভুলবেন না।


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

এই স্বয়ংক্রিয়ভাবে তৈরি SDK-তে রয়েছে:

  • একটি ইন্টারফেস যা এক্সটেনশনের প্যারামিটার এবং বেশিরভাগ নন-আদিম প্যারামিটার ধরণের জন্য টাইপ ঘোষণার প্রতিনিধিত্ব করে।
  • একটি কনস্ট্রাক্টর ফাংশন যা এক্সটেনশনের একটি ইনস্ট্যান্স ইনিশিয়ালাইজ করে
  • একটি এক্সটেনশন ক্লাস যাতে এক্সটেনশন দ্বারা নির্গত সমস্ত ইভেন্টের জন্য Eventarc ট্রিগার থাকে।

একবার আপনি একটি এক্সটেনশন SDK তৈরি করলে, এক্সটেনশনের সমস্ত কনফিগারেশন কোডের মাধ্যমে সম্পন্ন হবে।

এই ইনস্টলেশন বিকল্পটি ব্যবহার করলে একাধিক এক্সটেনশন ইনস্ট্যান্সের ব্যবস্থাপনা অনেক সহজ হতে পারে, বিশেষ করে যেসব প্রকল্পে এক্সটেনশনের বাইরে সংজ্ঞায়িত ক্লাউড ফাংশন থাকে।


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

একটি এক্সটেনশন ইনস্টল করার জন্য, আপনার প্রকল্পটি অবশ্যই Blaze (আপনার প্রয়োজন অনুসারে অর্থ প্রদান করুন) প্ল্যানে থাকতে হবে। যদিও একটি এক্সটেনশন ইনস্টল করার জন্য কোনও চার্জ নেই, তবে যদি আপনার ব্যবহার পরিষেবার বিনামূল্যের স্তর অতিক্রম করে তবে Firebase পরিষেবা বা Cloud Secret Manager এর মতো ক্লাউড পরিষেবা ব্যবহারের জন্য আপনাকে চার্জ করা হতে পারে।

শুরু করার আগে

  1. যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে আপনার প্রকল্পে Firebase যোগ করুন

  2. যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে আপনার প্রকল্পটি Blaze (pay as you go) প্ল্যানে আপগ্রেড করুন।

  3. Firebase CLI এর সর্বশেষ সংস্করণ ইনস্টল বা আপডেট করুন।

  4. আপনার Firebase প্রজেক্ট আইডি অথবা পূর্বে কনফিগার করা প্রজেক্ট উপনামের দিকে লক্ষ্য রাখুন।

ধাপ ১ : একটি এক্সটেনশন সম্পর্কে বিস্তারিত তথ্য দেখুন

এই পদক্ষেপটি ঐচ্ছিক, কিন্তু দৃঢ়ভাবে সুপারিশ করা হচ্ছে।

Firebase Extension ইনস্টল করার আগে, আমরা আপনাকে এক্সটেনশন সম্পর্কে বিস্তারিত তথ্য পর্যালোচনা করার পরামর্শ দিচ্ছি, যার মধ্যে রয়েছে:

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

একটি এক্সটেনশনের বিস্তারিত তথ্য দেখতে:

  1. নিশ্চিত করুন যে আপনি আপনার পরিবেশ সেট আপ করেছেন এবং একটি এক্সটেনশন নির্বাচন করেছেন

  2. আপনার কম্পিউটারের যেকোনো জায়গা থেকে extension-info কমান্ডটি চালান:

    firebase ext:info publisher-id/extension-id

    publisher-id এবং extension-id আর্গুমেন্টগুলি প্রয়োজনীয় এবং এক্সটেনশনের প্রি-ইনস্টল বিবরণ পৃষ্ঠায় পাওয়া যাবে।

ধাপ ২ : একটি এক্সটেনশন ইনস্টল করুন

ইনস্টলেশনের আগে, এক্সটেনশনের মৌলিক স্পেসিফিকেশন (যেমন API সক্ষম করা, তৈরি করা রিসোর্স , অ্যাক্সেস মঞ্জুর করা ইত্যাদি) এবং এর বিলিংয়ের প্রয়োজনীয়তাগুলি পর্যালোচনা করুন।

চালিয়ে যাওয়ার আগে, নিশ্চিত করুন যে আপনি আপনার পরিবেশ সেট আপ করেছেন এবং একটি এক্সটেনশন নির্বাচন করেছেন

Firebase এর জন্য ক্লাউড ফাংশন শুরু করুন

যদি আপনি একটি নতুন প্রকল্প শুরু করেন অথবা আপনার প্রকল্পটি ইতিমধ্যেই Firebase-এর জন্য Cloud Functions ব্যবহার না করে, তাহলে init functions চালান:

cd your-project
firebase init functions

আপনার ফাংশন ভাষা হিসেবে টাইপস্ক্রিপ্ট অথবা জাভাস্ক্রিপ্ট বেছে নিন।

যদি আপনার প্রোজেক্টে ইতিমধ্যেই ক্লাউড ফাংশন চালু করা থাকে, তাহলে নিশ্চিত করুন যে আপনি firebase-functions প্যাকেজের 5.1.0 বা তার নতুন সংস্করণ ব্যবহার করছেন:

cd your-project/functions
npm upgrade --save firebase-functions

যদি আপনি ESLint ব্যবহার করেন, তাহলে আপনার কনফিগারেশন ( .eslintrc.js ) থেকে জেনারেট করা SDK গুলি বাদ দিতে পারেন:

ignorePatterns: [
  "/generated/**/*", // Ignore generated files.
  // ...
],

একটি এক্সটেনশন SDK তৈরি করুন

আপনার স্থানীয় Firebase ডিরেক্টরি থেকে, ext:sdk:install কমান্ডটি চালান।

firebase ext:sdk:install publisher-id/extension-id@version

উদাহরণস্বরূপ, firestore-send-email এক্সটেনশনের 0.1.34 সংস্করণ ইনস্টল করতে:

firebase ext:sdk:install firebase/firestore-send-email@0.1.34

publisher-id এবং extension-id প্রয়োজনীয় এবং extensions.dev- এ এক্সটেনশনের প্রি-ইনস্টল বিবরণ পৃষ্ঠায় পাওয়া যাবে। @ version অংশটি ঐচ্ছিক; যদি আপনি এটি বাদ দেন, তাহলে টুলটি সর্বশেষ সংস্করণটি ইনস্টল করবে।

আপনি দুটি বিকল্প নির্দিষ্ট করতে পারেন:

  • --force : আরও নিশ্চিতকরণ ছাড়াই নিম্নলিখিত সমস্ত কাজ করুন:

    • একই এক্সটেনশন এবং সংস্করণের জন্য ইতিমধ্যেই SDK তৈরি করা হয়ে থাকলেও, স্বয়ংক্রিয়ভাবে SDK তৈরি করুন।
    • ক্লাউড ফাংশন নোড প্রকল্পে স্বয়ংক্রিয়ভাবে তৈরি SDK প্যাকেজটি ইনস্টল করুন।
  • --codebase : SDK যোগ করার জন্য কোডবেসের নাম। যদি নির্দিষ্ট না করা থাকে, তাহলে কমান্ডটি ডিফল্ট কোডবেসে SDK যোগ করে, functions

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

functions/generated/extensions/publisher-id/extension-id/version

SDK তৈরি করার পর, কমান্ডটি জিজ্ঞাসা করবে যে আপনি কি আপনার ক্লাউড ফাংশন নোড প্রজেক্টে SDK ইনস্টল করতে চান কিনা। এই প্রম্পটে হ্যাঁ উত্তর দিন।

এক্সটেনশনের উদাহরণগুলি কনফিগার করুন

এক্সটেনশনটি কনফিগার করতে, SDK আমদানি করুন এবং আপনি যে প্রতিটি এক্সটেনশন ইন্সট্যান্স ইনস্টল করতে চান তার জন্য কনস্ট্রাক্টর ফাংশনটি কল করুন, এতে একটি প্রজেক্ট-অনন্য ইনস্ট্যান্স আইডি এবং এক্সটেনশনের জন্য প্রয়োজনীয় কনফিগারেশন প্যারামিটারগুলি প্রেরণ করুন।

  1. আপনার ক্লাউড ফাংশন সোর্সে, ext:sdk:install কমান্ড দ্বারা মুদ্রিত স্টেটমেন্ট ব্যবহার করে কনস্ট্রাক্টরটি আমদানি করুন।

    টাইপস্ক্রিপ্ট

    উদাহরণস্বরূপ, যদি আপনি firestore-send-email এক্সটেনশনের জন্য একটি SDK তৈরি করেন, তাহলে import বিবৃতিটি নিম্নলিখিতগুলির মতো দেখাবে:

    import { firestoreSendEmail } from "@firebase-extensions/firebase-firestore-send-email-sdk";
    

    যদি এক্সটেনশনটির জন্য পাসওয়ার্ডের মতো কোনও গোপন মান প্রয়োজন হয়, তাহলে আপনার ক্লাউড ফাংশন SDK থেকে defineSecret ফাংশনটিও প্রয়োজন:

    import { defineSecret } from "firebase-functions/params";
    

    জাভাস্ক্রিপ্ট

    উদাহরণস্বরূপ, যদি আপনি firestore-send-email এক্সটেনশনের জন্য একটি SDK তৈরি করেন, তাহলে require স্টেটমেন্টটি নিচের মতো দেখাবে:

    const { firestoreSendEmail } = require("@firebase-extensions/firebase-firestore-send-email-sdk");
    

    যদি এক্সটেনশনটির জন্য পাসওয়ার্ডের মতো কোনও গোপন মান প্রয়োজন হয়, তাহলে আপনার ক্লাউড ফাংশন SDK থেকে defineSecret ফাংশনটিও প্রয়োজন:

    const { defineSecret } = require('firebase-functions/params');
    
  2. প্রতিটি ইনস্ট্যান্সের জন্য যা আপনি কনফিগার করতে চান, কনস্ট্রাক্টর ফাংশনটি কল করুন এবং ফলাফলটি এক্সপোর্ট করুন।

    প্রতিটি উদাহরণকে একটি অনন্য আইডি দিন, যাতে কেবল ছোট হাতের অক্ষর, সংখ্যা এবং হাইফেন থাকবে।

    টাইপস্ক্রিপ্ট

    export const firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", {
        SMTP_CONNECTION_URI: "smtps://username@example.com@smtp.example.com:465",
        SMTP_PASSWORD: defineSecret("SMTP_PASSWORD"),
        MAIL_COLLECTION: "mail",
        DEFAULT_FROM: "ExampleCo <username@example.com>",
        TTL_EXPIRE_VALUE: "1",
        TTL_EXPIRE_TYPE: "day",
    });
    

    জাভাস্ক্রিপ্ট

    exports.firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", {
        SMTP_CONNECTION_URI: "smtps://username@example.com@smtp.example.com:465",
        SMTP_PASSWORD: defineSecret("SMTP_PASSWORD"),
        MAIL_COLLECTION: "mail",
        DEFAULT_FROM: "ExampleCo <username@example.com>",
        TTL_EXPIRE_VALUE: "1",
        TTL_EXPIRE_TYPE: "day",
    });
    

    মনে রাখবেন যে গোপন মানগুলি defineSecret ফাংশন ব্যবহার করে নির্দিষ্ট করতে হবে।

  3. তারপর, আপনার কনফিগার করা এক্সটেনশনগুলি স্থাপন করতে, চালান:

    firebase deploy --only functions --project=projectId-or-alias

    সকল সাধারণ ক্লাউড ফাংশন স্থাপনের বিকল্প প্রযোজ্য। উদাহরণস্বরূপ, একটি নির্দিষ্ট কোডবেস থেকে একটি একক এক্সটেনশন উদাহরণ স্থাপন করতে:

    firebase deploy --only functions:codebase:extension-instance-id --project=projectId-or-alias

ধাপ ৩ : ইনস্টলেশনের পরে সেটআপ সম্পূর্ণ করুন

কিছু এক্সটেনশন ব্যবহারের আগে আপনাকে প্রয়োজনীয় বা ঐচ্ছিক ধাপগুলি সম্পূর্ণ করতে হবে। Firebase কনসোলের Extensions ড্যাশবোর্ডে আপনার এক্সটেনশনের ইনস্টল-পরবর্তী বিবরণ পৃষ্ঠায় এই নির্দেশাবলী খুঁজুন (ইনস্টলেশনের পরে টার্মিনালে ড্যাশবোর্ডের নির্দিষ্ট লিঙ্ক প্রদর্শিত হবে)।

আপনি এই নির্দেশাবলী এক্সটেনশনের সোর্স ডিরেক্টরিতে অন্তর্ভুক্ত POSTINSTALL.md ফাইলেও খুঁজে পেতে পারেন।

ফায়ারবেস রিসোর্স তৈরি করুন

যদি আপনি এক্সটেনশনটি Firebase রিসোর্স ( Cloud Firestore collections, Realtime Database paths, Cloud Storage buckets) ব্যবহার করার জন্য কনফিগার করে থাকেন যা ইতিমধ্যে বিদ্যমান নেই, তাহলে এক্সটেনশনটি ব্যবহার করার আগে সেগুলি তৈরি করুন।

Eventarc ইভেন্ট হ্যান্ডলার তৈরি করুন

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

যদি আপনি এক্সটেনশন দ্বারা নির্গত যেকোনো ইভেন্টের জন্য হ্যান্ডলার সংজ্ঞায়িত করতে চান, তাহলে আপনি প্রতিটি ইনস্ট্যান্সের ট্রিগার পদ্ধতি ব্যবহার করে তা করতে পারেন:

টাইপস্ক্রিপ্ট

export const firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", { /* ... */ });

export const emailErrorHandler = firestoreSendEmail_1.onError((event) => {
  // Handle mail errors.
});

জাভাস্ক্রিপ্ট

exports.firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", { /* ... */ });

exports.emailErrorHandler = exports.firestoreSendEmail_1.onError((event) => {
  // Handle mail errors.
});

আপনাকে এক্সটেনশন ইনস্ট্যান্সের সাথে ইভেন্ট হ্যান্ডলারটি এক্সপোর্ট করতে হবে।

একটি ইভেন্ট হ্যান্ডলার সংজ্ঞায়িত করার পর, এবং প্রতিবার একটিতে পরিবর্তন করার পর, এক্সটেনশন এবং হ্যান্ডলার উভয়ই পুনরায় স্থাপন করুন।

একাধিক এক্সটেনশন ইন্সট্যান্স ইনস্টল করুন

একই প্রোজেক্টে আপনি একই এক্সটেনশন একাধিকবার ইনস্টল করতে পারবেন। প্রতিটি ইনস্টল করা ইনস্ট্যান্সের নিজস্ব কাস্টমাইজড কনফিগারেশন এবং নিজস্ব এক্সটেনশন রিসোর্স থাকতে পারে। আপনি প্রতিটি ইনস্টল করা ইনস্ট্যান্সকে তার ইনস্ট্যান্স আইডি ব্যবহার করে সনাক্ত এবং উল্লেখ করতে পারবেন, যা আপনার প্রোজেক্টের মধ্যে অনন্য।

আপনি যে প্রতিটি ইনস্ট্যান্স ইনস্টল এবং কনফিগার করতে চান তার জন্য একবার অটোজেনারেটেড SDK এর কনস্ট্রাক্টর ফাংশনে কল করুন।

পরবর্তী পদক্ষেপ

  • Firebase কনসোলে আপনার ইনস্টল করা এক্সটেনশনের বিশদ বিবরণ এবং কনফিগারেশন দেখুন

  • আপনার ইনস্টল করা এক্সটেনশনের কার্যকলাপ পর্যবেক্ষণ করুন , যার মধ্যে এর স্বাস্থ্য, ব্যবহার এবং লগের পরীক্ষাও অন্তর্ভুক্ত।

  • Firebase কনসোল ব্যবহার করে, আপনার ইনস্টল করা এক্সটেনশনটি পরিচালনা করুন । অফিসিয়াল Firebase এক্সটেনশনের জন্য, আপনি আপনার এক্সটেনশনটি পুনরায় কনফিগার বা আনইনস্টল করতে পারেন, পাশাপাশি আপনার এক্সটেনশনটি সর্বশেষ সংস্করণে আপডেট করতে পারেন।

  • সকল প্রকল্পের জন্য সর্বোত্তম অনুশীলন হিসেবে, আপনার প্রকল্পের জন্য বাজেট সতর্কতা সেট আপ করতে ভুলবেন না এবং Firebase কনসোলে আপনার ব্যবহার এবং বিলিং ড্যাশবোর্ড পর্যবেক্ষণ করুন।