আপনি একটিমাত্র ফায়ারবেস প্রজেক্টে এক বা একাধিক Firebase Hosting সাইট সেট আপ করতে পারেন। যেহেতু সাইটগুলো সবই একই ফায়ারবেস প্রজেক্টে থাকে, তাই সবগুলো সাইটই প্রজেক্টটির অন্যান্য ফায়ারবেস রিসোর্স অ্যাক্সেস করতে পারে।
- প্রতিটি সাইটের নিজস্ব হোস্টিং কনফিগারেশন রয়েছে।
- প্রতিটি সাইট তার নিজস্ব বিষয়বস্তুর সংগ্রহ হোস্ট করে।
- প্রতিটি সাইটের এক বা একাধিক সংশ্লিষ্ট ডোমেইন থাকতে পারে।
একই Firebase প্রজেক্টের মধ্যে একাধিক Hosting সাইট তৈরি করার মাধ্যমে, আপনি সম্পর্কিত সাইট এবং অ্যাপগুলোর মধ্যে Firebase রিসোর্স আরও সহজে শেয়ার করতে পারেন। উদাহরণস্বরূপ, যদি আপনি আপনার ব্লগ, অ্যাডমিন প্যানেল এবং পাবলিক অ্যাপকে একই Firebase প্রজেক্টে আলাদা আলাদা সাইট হিসেবে তৈরি করেন, তাহলে তারা সবাই একই Firebase Authentication ইউজার ডেটাবেস শেয়ার করতে পারবে এবং একই সাথে তাদের নিজস্ব স্বতন্ত্র ডোমেইন বা কন্টেন্টও থাকবে।
ধাপ ১ : আপনার Firebase CLI সংস্করণ আপডেট করুন
Firebase CLI-এর সর্বশেষ সংস্করণে আপডেট করে Firebase Hosting সবচেয়ে আধুনিক ফিচারগুলো ব্যবহার করুন।
ধাপ ২ : অতিরিক্ত সাইট যোগ করুন
নিম্নলিখিত পদ্ধতিগুলোর যেকোনো একটি ব্যবহার করে একটি ফায়ারবেস প্রজেক্টে অতিরিক্ত সাইট যোগ করুন:
Firebase কনসোলের Hosting & Serverless > Hosting পৃষ্ঠায় ওয়ার্কফ্লোটি ব্যবহার করুন।
Firebase CLI কমান্ডটি ব্যবহার করুন:
firebase hosting:sites:create SITE_IDHosting REST API ব্যবহার করুন:
projects.sites.create
এই পদ্ধতিগুলোর প্রতিটির জন্য আপনাকে একটি SITE_ID নির্দিষ্ট করতে হবে, যা সাইটটির জন্য Firebase-প্রদত্ত ডিফল্ট সাবডোমেইনগুলো তৈরি করতে ব্যবহৃত হয়:
-
SITE_ID .web.app -
SITE_ID .firebaseapp.com
যেহেতু এই URL-গুলোর জন্য SITE_ID ব্যবহৃত হয়, তাই সাইট আইডির নিম্নলিখিত আবশ্যকতাগুলো রয়েছে:
- হোস্টনেম লেবেলটি অবশ্যই বৈধ হতে হবে, অর্থাৎ এতে
.,_, ইত্যাদি থাকতে পারবে না। - অবশ্যই ৩০ অক্ষর বা তার কম হতে হবে।
- ফায়ারবেসের মধ্যে অবশ্যই বিশ্বব্যাপী অনন্য হতে হবে
প্রতিটি সাইটে আপনি ঐচ্ছিকভাবে কাস্টম ডোমেইনও যোগ করতে পারেন, যাতে একই কন্টেন্ট ও কনফিগারেশন একাধিক ইউআরএল-এ পরিবেশন করা যায়।
একটি দ্বিতীয় সাইট মুছে ফেলুন
নিম্নলিখিত পদ্ধতিগুলোর যেকোনো একটি ব্যবহার করে ফায়ারবেস প্রজেক্ট থেকে অবাঞ্ছিত সাইটগুলো মুছে ফেলুন:
Firebase কনসোলের Hosting & Serverless > Hosting পৃষ্ঠায় ওয়ার্কফ্লোটি ব্যবহার করুন।
Firebase CLI কমান্ডটি ব্যবহার করুন:
firebase hosting:sites:delete SITE_IDHosting REST API ব্যবহার করুন:
projects.sites.delete
মনে রাখবেন যে আপনি ডিফল্ট সাইটটি ডিলিট করতে পারবেন না, কারণ সেটির SITE_ID আপনার Firebase প্রজেক্ট ID-এর সমান।
ধাপ ৩ : আপনার সাইটগুলির জন্য ডেপ্লয় টার্গেট সেট আপ করুন।
যখন আপনার একাধিক সাইট থাকে এবং আপনি Firebase CLI ডিপ্লয় কমান্ড চালান, তখন কোন সেটিংস কোন সাইটে ডিপ্লয় করা হবে তা জানানোর জন্য CLI-এর একটি উপায় প্রয়োজন হয়। ডিপ্লয় টার্গেটের মাধ্যমে আপনি আপনার firebase.json কনফিগারেশন ফাইলে এবং আপনার সাইটগুলিতে টেস্টিং বা ডিপ্লয় করার জন্য ব্যবহৃত Firebase CLI কমান্ডে একটি TARGET_NAME ব্যবহার করে একটি নির্দিষ্ট সাইটকে স্বতন্ত্রভাবে শনাক্ত করতে পারেন।
একটি Hosting সাইটে ডিপ্লয় টার্গেট তৈরি করতে এবং TARGET_NAME প্রয়োগ করতে, আপনার প্রজেক্ট ডিরেক্টরির রুট থেকে নিম্নলিখিত CLI কমান্ডটি চালান:
firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER
যেখানে প্যারামিটারগুলো হলো:
TARGET_NAME — যে Hosting সাইটে আপনি ডেপ্লয় করছেন, তার জন্য একটি অনন্য নাম (যা আপনি নিজেই নির্ধারণ করেছেন)।
RESOURCE_IDENTIFIER — আপনার Firebase প্রজেক্টে তালিকাভুক্ত Hosting সাইটের
SITE_ID
উদাহরণস্বরূপ, যদি আপনি আপনার Firebase প্রজেক্টে দুটি সাইট ( myapp-blog এবং myapp-app ) তৈরি করে থাকেন, তাহলে নিম্নলিখিত কমান্ডগুলো চালিয়ে প্রতিটি সাইটে একটি অনন্য TARGET_NAME (যথাক্রমে blog এবং app ) প্রয়োগ করতে পারেন:
firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app
ডিপ্লয় টার্গেটের সেটিংস আপনার প্রজেক্ট ডিরেক্টরির .firebaserc ফাইলে সংরক্ষিত থাকে, তাই প্রতি প্রজেক্টে আপনাকে শুধুমাত্র একবারই ডিপ্লয় টার্গেট সেট আপ করতে হবে।
ধাপ ৪ : প্রতিটি সাইটের জন্য হোস্টিং কনফিগারেশন নির্ধারণ করুন
আপনার firebase.json ফাইলে কোনো সাইটের হোস্টিং কনফিগারেশন নির্ধারণ করার সময়, সাইটটির জন্য ব্যবহৃত TARGET_NAME ব্যবহার করুন।
আপনার
firebase.jsonফাইলে যদি একাধিক সাইটের কনফিগারেশন নির্ধারণ করা থাকে, তাহলে অ্যারে ফরম্যাট ব্যবহার করুন:{ "hosting": [ { "target": "blog", // "blog" is the applied TARGET_NAME for the Hosting site "myapp-blog" "public": "blog/dist", // contents of this folder are deployed to the site "myapp-blog" // ... }, { "target": "app", // "app" is the applied TARGET_NAME for the Hosting site "myapp-app" "public": "app/dist", // contents of this folder are deployed to the site "myapp-app" // ... "rewrites": [...] // You can define specific Hosting configurations for each site } ] }যদি আপনার
firebase.jsonফাইলটি শুধুমাত্র একটি সাইটের জন্য কনফিগারেশন নির্ধারণ করে, তাহলে অ্যারে ফরম্যাট ব্যবহার করার প্রয়োজন নেই:{ "hosting": { "target": "blog", "public": "dist", // ... "rewrites": [...] } }
ধাপ ৫ : স্থানীয়ভাবে পরীক্ষা করুন, পরিবর্তনগুলির প্রিভিউ দেখুন এবং আপনার সাইটগুলিতে প্রয়োগ করুন।
আপনার স্থানীয় প্রজেক্ট ডিরেক্টরির রুট থেকে নিম্নলিখিত কমান্ডগুলির যেকোনো একটি চালান।
| আদেশ | বর্ণনা |
|---|---|
firebase emulators:start --only hosting | স্থানীয়ভাবে হোস্ট করা একটি URL-এ ডিফল্ট Hosting সাইটের Hosting কন্টেন্ট এবং কনফিগারেশন অনুকরণ করে। |
firebase emulators:start --only hosting: TARGET_NAME | স্থানীয়ভাবে হোস্ট করা একটি ইউআরএল-এ নির্দিষ্ট Hosting সাইটের বিষয়বস্তু এবং কনফিগারেশন অনুকরণ করে Hosting |
firebase hosting:channel:deploy \ | ডিফল্ট Hosting সাইটের Hosting কন্টেন্ট এবং কনফিগারেশন একটি প্রিভিউ ইউআরএল-এ স্থাপন করে। |
firebase hosting:channel:deploy \ | নির্দিষ্ট Hosting সাইটের Hosting কন্টেন্ট এবং কনফিগারেশন একটি প্রিভিউ ইউআরএল-এ স্থাপন করে। |
firebase deploy --only hosting | firebase.json এ কনফিগার করা সমস্ত Hosting সাইটের লাইভ চ্যানেলে Hosting কন্টেন্ট এবং কনফিগারেশন স্থাপন করে। |
firebase deploy --only hosting: TARGET_NAME | নির্দিষ্ট Hosting সাইটের লাইভ চ্যানেলে Hosting কন্টেন্ট এবং কনফিগারেশন স্থাপন করে। |
| আদেশ | বর্ণনা |
|---|---|
(সুপারিশ করা হয় না; পরিবর্তে emulators:start ব্যবহার করুন)firebase serve --only hosting | ডিফল্ট Hosting সাইটের Hosting কন্টেন্ট এবং কনফিগারেশন একটি স্থানীয়ভাবে হোস্ট করা URL-এ পরিবেশন করে। |
(সুপারিশ করা হয় না; পরিবর্তে emulators:start ব্যবহার করুন)firebase serve --only hosting: TARGET_NAME | নির্দিষ্ট Hosting সাইটের Hosting কন্টেন্ট এবং কনফিগারেশন একটি স্থানীয়ভাবে হোস্ট করা URL-এ পরিবেশন করে। |