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

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

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

ধাপ 1 : আপনার Firebase CLI সংস্করণ আপডেট করুন

Firebase CLI-এর সর্বশেষ সংস্করণে আপডেট করে সবচেয়ে বর্তমান Firebase Hosting বৈশিষ্ট্যগুলি অ্যাক্সেস করুন৷

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

নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করে একটি 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

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

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

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

একটি মাধ্যমিক সাইট মুছুন

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

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

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

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

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

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

যখন আপনার একাধিক সাইট থাকে এবং আপনি 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_IDENTIFIERHosting সাইটের জন্য 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 ফাইলে সংরক্ষণ করা হয়, তাই আপনাকে প্রতি প্রকল্পে একবারে লক্ষ্যমাত্রা স্থাপন করতে হবে।

ধাপ 4 : প্রতিটি সাইটের জন্য হোস্টিং কনফিগারেশন নির্ধারণ করুন

আপনি যখন আপনার 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": [...]
      }
    }
    

ধাপ 5 : স্থানীয়ভাবে পরীক্ষা করুন, পরিবর্তনের পূর্বরূপ দেখুন এবং আপনার সাইটে স্থাপন করুন

আপনার স্থানীয় প্রজেক্ট ডিরেক্টরির রুট থেকে নিম্নলিখিত কমান্ডগুলির যেকোনো একটি চালান।

আদেশ বর্ণনা
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 সাইটের কনফিগারেশন পরিবেশন করে