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

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

  • আপনার এক্সটেনশন কনফিগারেশন অন্যদের সাথে শেয়ার করুন
  • বিভিন্ন প্রকল্পের মধ্যে আপনার এক্সটেনশন কনফিগারেশন কপি করুন (যেমন আপনার স্টেজিং প্রকল্প থেকে আপনার প্রোডাকশন প্রকল্পে)
  • আপনার সমস্ত এক্সটেনশন একসাথে স্থাপন করুন
  • 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",
     }
    }
    
  • আপনার Firebase প্রজেক্ট ডিরেক্টরির 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 দিয়ে আপনার এক্সটেনশন ম্যানিফেস্ট পরিচালনা করুন

আপনি Firebase 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 তে শেয়ার করা প্যারামিটার মান রাখুন।

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

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