একটি এক্সটেনশন ম্যানিফেস্ট হল এক্সটেনশন উদাহরণ এবং তাদের কনফিগারেশনের একটি তালিকা। ম্যানিফেস্টের সাথে, আপনি করতে পারেন:
- অন্যদের সাথে আপনার এক্সটেনশন কনফিগারেশন শেয়ার করুন
- বিভিন্ন প্রকল্পের মধ্যে আপনার এক্সটেনশন কনফিগারেশন অনুলিপি করুন (যেমন আপনার স্টেজিং প্রকল্প থেকে আপনার উত্পাদন প্রকল্পে)
- একবারে আপনার সমস্ত এক্সটেনশন স্থাপন করুন
- 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}.appspot.com 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
একটি প্রকল্পের এক্সটেনশন কনফিগারেশন রপ্তানি করুন
ম্যানিফেস্টে একটি প্রকল্পের বর্তমান এক্সটেনশন কনফিগারেশন সংরক্ষণ করতে, নিম্নলিখিতগুলি করুন:
- আপনি যদি ইতিমধ্যে এটি না করে থাকেন, তাহলে Firebase CLI সেট আপ করুন৷
- একটি শেল প্রম্পট থেকে, প্রকল্প ডিরেক্টরিতে পরিবর্তন করুন। (আপনার প্রকল্প ডিরেক্টরিতে
firebase.json
ফাইলটি রয়েছে)। -
ext:export
কমান্ড চালান:firebase ext:export
ext:export
কমান্ড firebase.json
ফাইলে একটি extensions
বিভাগ যোগ করবে। অতিরিক্তভাবে, ext:export
কমান্ড আপনার ইনস্টল করা প্রতিটি এক্সটেনশন উদাহরণের জন্য একটি .env
ফাইল ধারণকারী একটি extensions
ডিরেক্টরি তৈরি করে। এই ফাইলগুলিতে প্রতিটি উদাহরণের জন্য কনফিগারেশন পরামিতি রয়েছে।
Firebase Local Emulator Suite সাথে একটি এক্সটেনশন কনফিগারেশন পরীক্ষা করুন
একবার আপনি আপনার এক্সটেনশন ম্যানিফেস্টে কিছু এক্সটেনশন দৃষ্টান্ত যোগ করলে, আপনি Local Emulator Suite ব্যবহার করে সেগুলি পরীক্ষা করতে পারেন।
Local Emulator Suite শুরু করুন :
- এমুলেটর স্যুট ইন্টারেক্টিভভাবে চালানোর জন্য, চালান:
firebase emulators:start
- এমুলেটর স্যুট চালাতে এবং একটি পরীক্ষা স্ক্রিপ্ট চালানোর জন্য, চালান:
firebase emulators:exec my-test.sh
- এমুলেটর স্যুট ইন্টারেক্টিভভাবে চালানোর জন্য, চালান:
এখন, আপনার ম্যানিফেস্টে তালিকাভুক্ত এক্সটেনশন উদাহরণ থাকলে, Local Emulator Suite সেই এক্সটেনশনগুলির সোর্স কোড ~/.cache/firebase/extensions
এ ডাউনলোড করবে। একবার সেগুলি ডাউনলোড হয়ে গেলে, Local Emulator Suite শুরু হবে এবং আপনি এক্সটেনশনগুলির যেকোন ব্যাকগ্রাউন্ড ট্রিগার করা ফাংশনগুলিকে ট্রিগার করতে সক্ষম হবেন এবং আপনার অ্যাপের সাথে তাদের একীকরণ পরীক্ষা করতে আপনার অ্যাপটিকে এমুলেটর স্যুটের সাথে সংযুক্ত করতে পারবেন।
একটি প্রকল্পে একটি এক্সটেনশন কনফিগারেশন স্থাপন করুন
একবার আপনি আপনার এক্সটেনশন ম্যানিফেস্টে কিছু এক্সটেনশন দৃষ্টান্ত যোগ করলে, আপনি Firebase CLI ব্যবহার করে একটি প্রকল্পে এটি স্থাপন করতে পারেন। যখন আপনি একটি এক্সটেনশন ম্যানিফেস্টের সাথে স্থাপন করেন, আপনি ম্যানিফেস্টের সমস্ত এক্সটেনশন দৃষ্টান্ত একবারে একটি প্রকল্পে ইনস্টল, আপডেট এবং কনফিগার করেন৷
একটি এক্সটেনশন ম্যানিফেস্ট স্থাপন করতে:
- একটি শেল প্রম্পট থেকে, সংরক্ষিত এক্সটেনশন কনফিগারেশন ধারণকারী ডিরেক্টরিতে পরিবর্তন করুন। (এটি হল সেই ডিরেক্টরি যাতে
firebase.json
রয়েছে। আপনি যদি এইমাত্রext:export
চালান, আপনি ইতিমধ্যেই সঠিক ডিরেক্টরিতে আছেন।) -
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