একাধিক সাইট জুড়ে প্রকল্প সম্পদ শেয়ার করুন

আপনি একটি একক Firebase প্রকল্পে এক বা একাধিক Firebase Hosting সাইট সেট আপ করতে পারেন। যেহেতু সাইটগুলি একই Firebase প্রকল্পের মধ্যে রয়েছে, তাই সমস্ত সাইট প্রকল্পের অন্যান্য Firebase সংস্থানগুলি অ্যাক্সেস করতে পারে।

একই Firebase প্রকল্পের মধ্যে একাধিক Hosting সাইট সেট আপ করে, আপনি আরও সহজেই সম্পর্কিত সাইট এবং অ্যাপের মধ্যে Firebase রিসোর্স শেয়ার করতে পারবেন। উদাহরণস্বরূপ, যদি আপনি একই Firebase প্রকল্পের মধ্যে আপনার ব্লগ, অ্যাডমিন প্যানেল এবং পাবলিক অ্যাপকে পৃথক সাইট হিসেবে সেট আপ করেন, তাহলে তারা সকলেই একই Firebase Authentication ব্যবহারকারী ডাটাবেস শেয়ার করতে পারবে, একই সাথে তাদের নিজস্ব অনন্য ডোমেন বা কন্টেন্টও থাকবে।

ধাপ ১ : আপনার Firebase সিএলআই সংস্করণ আপডেট করুন

Firebase CLI এর সর্বশেষ সংস্করণে আপডেট করে সর্বশেষ Firebase Hosting বৈশিষ্ট্যগুলি অ্যাক্সেস করুন।

ধাপ ২ : অতিরিক্ত সাইট যোগ করুন

নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করে একটি Firebase প্রকল্পে অতিরিক্ত সাইট যোগ করুন:

  • Firebase কনসোলের Hosting পৃষ্ঠায় ওয়ার্কফ্লো ব্যবহার করুন

  • Firebase CLI কমান্ডটি ব্যবহার করুন: firebase hosting:sites:create SITE_ID

  • Hosting REST API ব্যবহার করুন: projects.sites.create

এই প্রতিটি পদ্ধতির জন্য, আপনাকে একটি SITE_ID নির্দিষ্ট করতে হবে যা সাইটের জন্য Firebase-প্রভিশনড ডিফল্ট সাবডোমেন তৈরি করতে ব্যবহৃত হয়:

  • SITE_ID .web.app
  • SITE_ID .firebaseapp.com

যেহেতু SITE_ID এই URL গুলির জন্য ব্যবহৃত হয়, সাইট আইডির নিম্নলিখিত প্রয়োজনীয়তা রয়েছে:

  • একটি বৈধ হোস্টনেম লেবেল হতে হবে, অর্থাৎ এতে . , _ , ইত্যাদি থাকতে পারবে না।
  • ৩০টি অক্ষর বা তার কম হতে হবে
  • Firebase-এর মধ্যে বিশ্বব্যাপী অনন্য হতে হবে

প্রতিটি সাইটে, আপনি ঐচ্ছিকভাবে একাধিক URL-এ একই বিষয়বস্তু এবং কনফিগারেশন পরিবেশন করার জন্য কাস্টম ডোমেন যোগ করতে পারেন।

একটি গৌণ সাইট মুছুন

নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করে Firebase প্রকল্প থেকে অবাঞ্ছিত সাইটগুলি মুছুন:

  • Firebase কনসোলের Hosting পৃষ্ঠায় ওয়ার্কফ্লো ব্যবহার করুন

  • Firebase CLI কমান্ডটি ব্যবহার করুন: firebase hosting:sites:delete SITE_ID

  • Hosting REST API ব্যবহার করুন: projects.sites.delete

মনে রাখবেন যে আপনি ডিফল্ট সাইটটি মুছে ফেলতে পারবেন না, যার SITE_ID আপনার Firebase প্রজেক্ট আইডির মতোই।

ধাপ ৩ : আপনার সাইটের জন্য স্থাপনের লক্ষ্য নির্ধারণ করুন

যখন আপনার একাধিক সাইট থাকে এবং আপনি Firebase CLI deploy কমান্ড চালান, তখন CLI-এর একটি উপায় প্রয়োজন হয় যাতে প্রতিটি সাইটে কোন সেটিংস স্থাপন করা উচিত তা যোগাযোগ করা যায়। deploy target ব্যবহার করে আপনি আপনার 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 স্থানীয়ভাবে হোস্ট করা URL-এ নির্দিষ্ট Hosting সাইটের Hosting কন্টেন্ট এবং কনফিগারেশন অনুকরণ করে।
firebase hosting:channel:deploy \
CHANNEL_ID
একটি প্রিভিউ URL-এ ডিফল্ট Hosting সাইটের Hosting কন্টেন্ট এবং কনফিগারেশন স্থাপন করে।
firebase hosting:channel:deploy \
CHANNEL_ID --only TARGET_NAME
একটি প্রিভিউ URL-এ নির্দিষ্ট Hosting সাইটের Hosting কন্টেন্ট এবং কনফিগারেশন স্থাপন করে।
firebase deploy --only hosting firebase.json এ কনফিগার করা সমস্ত Hosting সাইটের লাইভ চ্যানেলে Hosting কন্টেন্ট এবং কনফিগারেশন স্থাপন করে।
firebase deploy --only hosting: TARGET_NAME নির্দিষ্ট Hosting সাইটের লাইভ চ্যানেলে Hosting কন্টেন্ট এবং কনফিগারেশন স্থাপন করে।
কমান্ড বিবরণ
(প্রস্তাবিত নয়; emulators:start )
firebase serve --only hosting
স্থানীয়ভাবে হোস্ট করা URL-এ ডিফল্ট Hosting সাইটের Hosting কন্টেন্ট এবং কনফিগারেশন পরিবেশন করে।
(প্রস্তাবিত নয়; emulators:start )
firebase serve --only hosting: TARGET_NAME
স্থানীয়ভাবে হোস্ট করা URL-এ নির্দিষ্ট Hosting সাইটের Hosting কন্টেন্ট এবং কনফিগারেশন পরিবেশন করে।