এক্সটেনশন ম্যানিফেস্টের সাথে প্রকল্প কনফিগারেশন পরিচালনা করুন

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

  • অন্যদের সাথে আপনার এক্সটেনশন কনফিগারেশন শেয়ার করুন
  • বিভিন্ন প্রকল্পের মধ্যে আপনার এক্সটেনশন কনফিগারেশন অনুলিপি করুন (যেমন আপনার স্টেজিং প্রকল্প থেকে আপনার উত্পাদন প্রকল্পে)
  • একবারে আপনার সমস্ত এক্সটেনশন স্থাপন করুন
  • Firebase Local Emulator Suite ব্যবহার করে আপনার এক্সটেনশনগুলি আপনার অ্যাপের সাথে কীভাবে কাজ করে তা পরীক্ষা করুন
  • উৎস নিয়ন্ত্রণে আপনার এক্সটেনশন কনফিগারেশন কমিট করুন
  • আপনার CI/CD পাইপলাইনে এক্সটেনশন অন্তর্ভুক্ত করুন

একটি এক্সটেনশন ম্যানিফেস্টের দুটি অংশ রয়েছে:

  • আপনার firebase.json এর extensions বিভাগ, যা এক্সটেনশন সংস্করণ রেফারেন্সের জন্য ইনস্ট্যান্স আইডির একটি মানচিত্র। যেমন:

    {
     "extensions": {
       "my-bigquery-extension": "firebase/firestore-bigquery-export@^0.1.18",
       "my-image-resizer": "firebase/storage-resize-images@^0.1.22",
     }
    }
    
  • আপনার ফায়ারবেস প্রজেক্ট ডিরেক্টরির extensions/ সাবডিরেক্টরিতে আপনার প্রতিটি এক্সটেনশন উদাহরণের জন্য কনফিগারেশন ধারণকারী .env ফাইল। উদাহরণস্বরূপ, storage-resize-images একটি উদাহরণে নিম্নলিখিতগুলির মতো একটি .env ফাইল থাকতে পারে:

    IMAGE_TYPE=jpeg
    LOCATION=us-central1
    IMG_BUCKET=${param:PROJECT_ID}.firebasestorage.app
    IMG_SIZES=100x100
    DELETE_ORIGINAL_FILE=false

একটি এক্সটেনশন ম্যানিফেস্ট তৈরি করুন

একটি এক্সটেনশন ম্যানিফেস্ট তৈরি করার তিনটি উপায় রয়েছে:

  • Firebase CLI এর মাধ্যমে আপনার এক্সটেনশন ম্যানিফেস্ট পরিচালনা করুন
  • একটি প্রকল্পের এক্সটেনশন কনফিগারেশন রপ্তানি করুন
  • ম্যানিফেস্ট ফাইল ম্যানুয়ালি সম্পাদনা করুন

প্রথম দুটি পদ্ধতি নীচে ব্যাখ্যা করা হয়েছে।

Firebase CLI এর মাধ্যমে আপনার এক্সটেনশন ম্যানিফেস্ট পরিচালনা করুন

আপনি ফায়ারবেস CLI-এর বেশিরভাগ ext: কমান্ডগুলি চালাতে পারেন যা আসলে প্রজেক্টের বর্তমান কনফিগারেশন পরিবর্তন না করেই এক্সটেনশন ম্যানিফেস্ট আপডেট করার জন্য --local বিকল্পের সাহায্যে।

যেমন:

firebase ext:install --local firebase/firestore-bigquery-export

উপরের কমান্ডটি চালানো আপনাকে firebase/firestore-bigquery-export এক্সটেনশনের সর্বশেষ সংস্করণ কনফিগার করতে এবং ম্যানিফেস্টে কনফিগারেশন সংরক্ষণ করতে অনুরোধ করবে, কিন্তু এটি আপনার প্রকল্পে কনফিগারেশন স্থাপন করবে না।

এখানে কমান্ডের আরও কিছু উদাহরণ রয়েছে যা এক্সটেনশন ম্যানিফেস্টকে পরিবর্তন করে:

# ext:configure changes the params for an extension instance in your extensions manifest
$ firebase ext:configure my-bigquery-extension --local

# ext:update --local updates an instance in your extensions manifest
# to the latest version of that extension
$ firebase ext:update my-bigquery-extension --local

# You can also specify a version if you don't want to update to the latest version
$ firebase ext:update my-bigquery-extension firebase/firestore-bigquery-export@0.1.10 --local 

# ext:uninstall --local removes an instance from your extensions manifest
$ firebase ext:uninstall my-bigquery-extension --local

একটি প্রকল্পের এক্সটেনশন কনফিগারেশন রপ্তানি করুন

ম্যানিফেস্টে একটি প্রকল্পের বর্তমান এক্সটেনশন কনফিগারেশন সংরক্ষণ করতে, নিম্নলিখিতগুলি করুন:

  1. আপনি যদি ইতিমধ্যে এটি না করে থাকেন, তাহলে Firebase CLI সেট আপ করুন৷
  2. একটি শেল প্রম্পট থেকে, প্রকল্প ডিরেক্টরিতে পরিবর্তন করুন। (আপনার প্রকল্প ডিরেক্টরিতে firebase.json ফাইলটি রয়েছে)।
  3. ext:export কমান্ড চালান:
    firebase ext:export

ext:export কমান্ড firebase.json ফাইলে একটি extensions বিভাগ যোগ করবে। অতিরিক্তভাবে, ext:export কমান্ড আপনার ইনস্টল করা প্রতিটি এক্সটেনশন উদাহরণের জন্য একটি .env ফাইল ধারণকারী একটি extensions ডিরেক্টরি তৈরি করে। এই ফাইলগুলিতে প্রতিটি উদাহরণের জন্য কনফিগারেশন পরামিতি রয়েছে।

Firebase Local Emulator Suite সাথে একটি এক্সটেনশন কনফিগারেশন পরীক্ষা করুন

একবার আপনি আপনার এক্সটেনশন ম্যানিফেস্টে কিছু এক্সটেনশন দৃষ্টান্ত যোগ করলে, আপনি Local Emulator Suite ব্যবহার করে সেগুলি পরীক্ষা করতে পারেন।

  1. Local Emulator Suite ইনস্টল এবং কনফিগার করুন

  2. Local Emulator Suite শুরু করুন :

    • এমুলেটর স্যুট ইন্টারেক্টিভভাবে চালানোর জন্য, চালান: firebase emulators:start
    • এমুলেটর স্যুট চালাতে এবং একটি পরীক্ষা স্ক্রিপ্ট চালানোর জন্য, চালান: firebase emulators:exec my-test.sh

এখন, আপনার ম্যানিফেস্টে তালিকাভুক্ত এক্সটেনশন উদাহরণ থাকলে, Local Emulator Suite সেই এক্সটেনশনগুলির সোর্স কোড ~/.cache/firebase/extensions এ ডাউনলোড করবে। একবার সেগুলি ডাউনলোড হয়ে গেলে, Local Emulator Suite শুরু হবে এবং আপনি এক্সটেনশনগুলির যেকোন ব্যাকগ্রাউন্ড ট্রিগার করা ফাংশনগুলিকে ট্রিগার করতে সক্ষম হবেন এবং আপনার অ্যাপের সাথে তাদের একীকরণ পরীক্ষা করতে আপনার অ্যাপটিকে এমুলেটর স্যুটের সাথে সংযুক্ত করতে পারবেন।

একটি প্রকল্পে একটি এক্সটেনশন কনফিগারেশন স্থাপন করুন

একবার আপনি আপনার এক্সটেনশন ম্যানিফেস্টে কিছু এক্সটেনশন দৃষ্টান্ত যোগ করলে, আপনি Firebase CLI ব্যবহার করে একটি প্রকল্পে এটি স্থাপন করতে পারেন। যখন আপনি একটি এক্সটেনশন ম্যানিফেস্টের সাথে স্থাপন করেন, আপনি ম্যানিফেস্টের সমস্ত এক্সটেনশন দৃষ্টান্ত একবারে একটি প্রকল্পে ইনস্টল, আপডেট এবং কনফিগার করেন৷

একটি এক্সটেনশন ম্যানিফেস্ট স্থাপন করতে:

  1. একটি শেল প্রম্পট থেকে, সংরক্ষিত এক্সটেনশন কনফিগারেশন ধারণকারী ডিরেক্টরিতে পরিবর্তন করুন। (এটি হল সেই ডিরেক্টরি যাতে firebase.json রয়েছে। আপনি যদি এইমাত্র ext:export চালান, আপনি ইতিমধ্যেই সঠিক ডিরেক্টরিতে আছেন।)
  2. deploy কমান্ড চালান। আপনি যদি বর্তমানের ব্যতীত অন্য কোনো প্রকল্পে এক্সটেনশন স্থাপন করতে চান তবে --project= উল্লেখ করুন :
    firebase deploy --only extensions –-project=YOUR_PROJECT_ID

deploy কমান্ড প্রতিটি ইনস্ট্যান্স কনফিগারেশন যাচাই করবে, আপনি আপনার গন্তব্য প্রকল্প থেকে এমন কোনো এক্সটেনশন দৃষ্টান্ত মুছে ফেলতে চান যা firebase.json এ তালিকাভুক্ত নয়, এবং তারপর আপনার সমস্ত এক্সটেনশন দৃষ্টান্ত স্থাপন করুন।

প্রকল্প-নির্দিষ্ট এক্সটেনশন কনফিগারেশন

সংরক্ষিত এক্সটেনশন কনফিগারেশনগুলি একাধিক ভিন্ন প্রকল্পে স্থাপন করতে ব্যবহার করা যেতে পারে: উদাহরণস্বরূপ, একটি স্টেজিং প্রকল্প এবং একটি উত্পাদন প্রকল্প। এটি করার সময়, প্রতিটি প্রকল্পের জন্য কিছু প্যারামিটার মান আলাদা হতে পারে। প্রকল্প-নির্দিষ্ট .env ফাইলগুলি এটি সম্ভব করে:

  • প্যারামিটার মানগুলি রাখুন যা extensions/ EXTENSION_INSTANCE_ID .env. YOUR_PROJECT_ID এ প্রকল্পগুলির মধ্যে আলাদা। extensions/ EXTENSION_INSTANCE_ID .env. YOUR_PROJECT_ID
  • শেয়ার করা প্যারামিটার মানগুলিকে extensions/ EXTENSION_INSTANCE_ID .env এ রাখুন।

কখনও কখনও, আপনার এক্সটেনশনগুলি অনুকরণ করার সময় আপনি একটি ভিন্ন প্যারামিটার মান ব্যবহার করতে চাইতে পারেন: উদাহরণস্বরূপ, আপনি একটি উত্পাদনের পরিবর্তে একটি পরীক্ষা API কী প্রদান করতে চাইতে পারেন৷ একটি .local ফাইলে এই পরামিতিগুলি রাখুন:

  • extensions/ EXTENSION_INSTANCE_ID .env.local এ আপনি অনুকরণের সময় ব্যবহার করতে চান এমন গোপনীয় প্যারামিটারগুলি রাখুন
  • extensions/ EXTENSION_INSTANCE_ID .secret.local