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

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

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


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

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

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

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

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


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

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

আপনি শুরু করার আগে

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

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

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

  4. আপনার ফায়ারবেস প্রোজেক্ট আইডি বা পূর্বে কনফিগার করা প্রোজেক্টের উপনাম নোট করুন।

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

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

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

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

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

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

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

    firebase ext:info publisher-id/extension-id

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

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

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

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

ফায়ারবেসের জন্য ক্লাউড ফাংশন শুরু করুন

আপনি যদি একটি নতুন প্রকল্প শুরু করেন বা যদি আপনার প্রকল্প ইতিমধ্যেই Firebase-এর জন্য ক্লাউড ফাংশন ব্যবহার না করে, তাহলে init functions চালান:

cd your-project
firebase init functions

আপনার ফাংশন ভাষা হিসাবে TypeScript বা JavaScript চয়ন করুন।

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

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

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

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

একটি এক্সটেনশন SDK জেনারেট করুন

আপনার স্থানীয় ফায়ারবেস ডিরেক্টরি থেকে, 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 প্যাকেজ ইনস্টল করুন।
  • --codebase : SDK যোগ করার জন্য কোডবেসের নাম। অনির্দিষ্ট থাকলে, কমান্ডটি ডিফল্ট কোডবেস, functions SDK যোগ করে।

এই কমান্ডটি এক্সটেনশনের জন্য স্বয়ংক্রিয়ভাবে তৈরি একটি 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

ধাপ 3 : পোস্ট-ইনস্টল সেটআপ সম্পূর্ণ করুন

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

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

Firebase সম্পদ তৈরি করুন

আপনি যদি ফায়ারবেস সংস্থানগুলি ( Cloud Firestore সংগ্রহ, Realtime Database পাথ, Cloud Storage বালতি) ব্যবহার করার জন্য এক্সটেনশনটি কনফিগার করেন যা আগে থেকে নেই, তবে এক্সটেনশনটি ব্যবহার করার আগে সেগুলি তৈরি করুন৷

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 কনসোলে আপনার ব্যবহার এবং বিলিং ড্যাশবোর্ড নিরীক্ষণ করুন৷