ডেপ্লয় টার্গেট

ডিপ্লয় টার্গেট হল Firebase প্রোজেক্টের Firebase রিসোর্সের জন্য ছোট নামের শনাক্তকারী (যা আপনি নিজেই নির্ধারণ করেন), যেমন অনন্য স্ট্যাটিক অ্যাসেট সহ Hosting সাইট বা একই নিরাপত্তা নিয়ম শেয়ার করে এমন Realtime Database ইনস্ট্যান্সের গ্রুপ।

আপনার কাছে একাধিক Hosting সাইট, একাধিক Cloud Storage বাকেট অথবা একাধিক Realtime Database ইনস্ট্যান্স থাকলে, ডিপ্লয় টার্গেট সহায়ক হয়। ডিপ্লয় টার্গেটের মাধ্যমে, Firebase CLI আপনার প্রোজেক্টের নির্দিষ্ট Firebase রিসোর্স বা রিসোর্সের গ্রুপে সেটিংস ডিপ্লয় করতে পারে, যেমন:

  • আপনার প্রতিটি Hosting সাইটের জন্য হোস্টিং কনফিগারেশন
  • আপনার প্রতিটি Hosting সাইটের জন্য আপনার প্রোজেক্ট ডিরেক্টরি থেকে স্ট্যাটিক অ্যাসেট
  • একাধিক Realtime Database ইনস্ট্যান্স বা একাধিক Cloud Storage বাকেটের শেয়ার করা নিরাপত্তা সংক্রান্ত নিয়ম

ডেপ্লয় টার্গেট সেট-আপ করতে:

  1. টার্গেট করা Firebase রিসোর্স বা Firebase রিসোর্সের গ্রুপে TARGET_NAME প্রয়োগ করুন।
  2. প্রতিটি রিসোর্স বা রিসোর্সের গ্রুপের জন্য সেটিংস কনফিগার করার সময়, সম্পর্কিত TARGET_NAME আপনার firebase.json ফাইলে রেফারেন্স দিন।

আপনি Firebase CLI কমান্ড (যেমন firebase deploy) রান করালে, Firebase CLI প্রতিটি TARGET_NAME-কে এর সাথে সম্পর্কিত Firebase রিসোর্সের সাথে পেয়ার করে। তারপর CLI, প্রতিটি রিসোর্সের সেটিংস সম্পর্কে আপনার Firebase প্রজেক্টের সাথে যোগাযোগ করে।

আপনার Firebase রিসোর্সের জন্য ডেপ্লয় টার্গেট সেট-আপ করা

Firebase CLI ব্যবহার করে, Firebase রিসোর্স বা Firebase রিসোর্সের গ্রুপে TARGET_NAME (স্বল্প-নাম শনাক্তকারী যা আপনি নিজেই নির্ধারণ করেন) প্রয়োগ করুন। Firebase এগুলির জন্য ডেপ্লয় টার্গেট কাজ করে:

ডেপ্লয় টার্গেটের সেটিংস আপনার প্রজেক্ট ডিরেক্টরিতে .firebaserc ফাইলে স্টোর করা থাকে, তাই আপনাকে প্রতি প্রজেক্টে একবারই ডেপ্লয় টার্গেট সেট-আপ করতে হবে।

Hosting-এর জন্য ডিপ্লয় টার্গেট সেট-আপ করা

ডেপ্লয় টার্গেট তৈরি করতে এবং Hosting সাইটে TARGET_NAME প্রয়োগ করতে, নিম্নলিখিত CLI কমান্ড রান করান:

firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER

প্যারামিটারগুলি হল:

  • TYPE — প্রাসঙ্গিক Firebase রিসোর্সের ধরন

    • Firebase Hosting সাইটের জন্য, hosting ব্যবহার করুন।
  • TARGET_NAME — Hosting সাইটের অনন্য নাম যেখানে আপনি ডেপ্লয় করছেন

  • RESOURCE_IDENTIFIER — SITE_ID-এর জন্য Hosting সাইট আপনার Firebase প্রোজেক্টে তালিকাভুক্ত করা হয়েছে

যেমন, আপনার Firebase প্রোজেক্টে দুটি সাইট তৈরি (myapp-blog ও myapp-app) করে থাকলে, আপনি নিম্নলিখিত কমান্ড চালিয়ে প্রতিটি সাইটে একটি করে অনন্য TARGET_NAME (যথাক্রমে blog ও app) প্রয়োগ করতে পারবেন:

firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app

Cloud Storage বা Realtime Database-এর জন্য ডিপ্লয় টার্গেট সেট-আপ করা

ডেপ্লয় টার্গেট তৈরি করতে এবং একগুচ্ছ TARGET_NAMECloud Storage বা Realtime Database রিসোর্সে প্রয়োগ করতে, নিম্নলিখিত CLI কমান্ড রান করুন:

firebase target:apply TYPE TARGET_NAME RESOURCE-1_IDENTIFIER RESOURCE-2_IDENTIFIER ...

প্যারামিটারগুলি হল:

  • TYPE — প্রাসঙ্গিক Firebase রিসোর্সের ধরন

    • Cloud Storage বাকেটের জন্য, storage ব্যবহার করুন।
    • Realtime Database ইনস্ট্যান্সের জন্য, database ব্যবহার করুন।
  • TARGET_NAME — রিসোর্স বা রিসোর্সের গ্রুপের অনন্য নাম যেগুলি নিরাপত্তা সংক্রান্ত নিয়ম শেয়ার করে

  • RESOURCE_IDENTIFIER — রিসোর্সের শনাক্তকারী যা আপনার Firebase প্রোজেক্টে তালিকাভুক্ত করা আছে (যেমন স্টোরেজ বাকেটের নাম বা ডেটাবেস ইনস্ট্যান্স আইডি) যেগুলি একই নিরাপত্তা সংক্রান্ত নিয়ম শেয়ার করে

যেমন, আপনি নিম্নলিখিত কমান্ড চালিয়ে তিনটি আঞ্চলিক Cloud Storage বাকেটের (যেগুলি একই নিরাপত্তা সংক্রান্ত নিয়ম শেয়ার করে) গ্রুপে main-এর TARGET_NAME প্রয়োগ করতে পারেন:

firebase target:apply storage main myproject.firebasestorage.app myproject-eu myproject-ja

মনে রাখবেন, myproject.firebasestorage.app হল ডিফল্ট বাকেটের শনাক্তকারী, যেখানে myproject-eu ও myproject-ja হল Firebase প্রোজেক্টে তৈরি করা দুটি অতিরিক্ত বাকেট।

ডিপ্লয় টার্গেট ব্যবহার করতে আপনার firebase.json ফাইল কনফিগার করা

Firebase রিসোর্সের জন্য ডিপ্লয় টার্গেট সেট-আপ করার পরে, প্রতিটি প্রয়োগ করা TARGET_NAME-এর রেফারেন্স আপনার firebase.json কনফিগারেশন ফাইলে দিন:

  1. প্রতিটি Firebase রিসোর্সের জন্য কনফিগারেশন অবজেক্টের একটি অ্যারে তৈরি করুন TYPE (hosting, storage, বা database)।
  2. অ্যারেতে, target নির্দিষ্ট করুন (TARGET_NAME ব্যবহার করে) এবং সংশ্লিষ্ট Firebase রিসোর্স বা রিসোর্সের গ্রুপের জন্য আপনার সেটিংস নির্ধারণ করুন।

উপরে দেওয়া উদাহরণ অনুযায়ী, আপনার Firebase প্রোজেক্টে দুটি Hosting সাইট ও তিনটি Cloud Storage বাকেট (যেগুলি একই সুরক্ষা সংক্রান্ত নিয়ম শেয়ার করে) থাকলে, আপনার 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
    }
  ]
}

{
  "storage": [ {
      "target": "main",  // "main" is the applied TARGET_NAME for the group of Cloud Storage buckets
      "rules": "storage.main.rules"  // the file that contains the shared security rules
    }
  ]
}

আপনার রিসোর্সের জন্য একাধিক কনফিগারেশন থাকলে, আপনি একাধিক ডেপ্লয় টার্গেট তৈরি করতে এবং firebase.json ফাইলে প্রতিটি নির্দিষ্ট করতে পারবেন। আপনি firebase deploy চালালে, সংশ্লিষ্ট সব রিসোর্স একসাথে ডেপ্লয় করা হবে।

ডেপ্লয় টার্গেট ম্যানেজ করা

ডেপ্লয় টার্গেটের সেটিংস আপনার প্রোজেক্ট ডিরেক্টরির .firebaserc ফাইলে স্টোর করা থাকে। আপনার প্রোজেক্ট ডিরেক্টরির রুট থেকে নিম্নলিখিত কমান্ডগুলির যেকোনও একটি চালিয়ে আপনার প্রোজেক্টের ডিপ্লয় টার্গেট ম্যানেজ করতে পারবেন।

কমান্ড বিবরণ
firebase target আপনার বর্তমান প্রোজেক্ট ডিরেক্টরির জন্য ডিপ্লয় টার্গেট তালিকাভুক্ত করে
firebase target:remove \
TYPE RESOURCE_IDENTIFIER
যে টার্গেটে রিসোর্স অ্যাসাইন করা হয়েছে সেটি থেকে সরিয়ে দেয়
firebase target:clear \
TYPE TARGET_NAME
নির্দিষ্ট করা টার্গেট থেকে সব রিসোর্স বা Hosting সাইট সরিয়ে দেয়

target:remove এবং target:clear কমান্ড আপনার প্রোজেক্ট ডিরেক্টরিতে .firebaserc ফাইলে অটোমেটিক ডেপ্লয় টার্গেট সেটিংস আপডেট করে।

ডেপ্লয় করার আগে লোকালি পরীক্ষা করা

আপনার প্রজেক্ট ডিরেক্টরির রুট থেকে নিম্নলিখিত কমান্ডগুলির মধ্যে যেকোনও একটি রান করুন।

কমান্ড বিবরণ
firebase emulators:start আপনার প্রোজেক্টের ডিরেক্টরিতে কনফিগার করা সব রিসোর্স এমুলেট করে
firebase emulators:start \
--only hosting:TARGET_NAME
শুধুমাত্র নির্দিষ্ট করা Hosting সাইটের কন্টেন্ট ও কনফিগারেশন Hosting এমুলেট করে
firebase emulators:start \
--only storage:TARGET_NAME
নির্দিষ্ট Cloud Storage টার্গেটের জন্য শুধুমাত্র নিয়ম ফাইল এমুলেট করে
firebase emulators:start \
--only database:TARGET_NAME
নির্দিষ্ট Realtime Database টার্গেটের জন্য শুধুমাত্র নিয়ম ফাইল এমুলেট করে

Firebase Local Emulator Suite কনফিগার করা ও ব্যবহার করা সম্পর্কে আরও জানুন।

নির্দিষ্ট Firebase রিসোর্স ডিপ্লয় করা

আপনার প্রজেক্ট ডিরেক্টরির রুট থেকে নিম্নলিখিত কমান্ডগুলির মধ্যে যেকোনও একটি রান করুন।

কমান্ড বিবরণ
firebase deploy আপনার প্রোজেক্টের ডিরেক্টরিতে সব ডিপ্লয় করা যায় এমন রিসোর্সের রিলিজ তৈরি করে ডিরেক্টরি
firebase deploy \
--only hosting:TARGET_NAME
সাইটের জন্য লাইভ চ্যানেলে শুধু নির্দিষ্ট Hosting সাইটের কন্টেন্ট ও কনফিগারেশন Hosting ডিপ্লয় করে
firebase hosting:channel:deploy CHANNEL_ID \
--only TARGET_NAME
সাইটের জন্য নির্দিষ্ট করা Hosting সাইটের শুধুমাত্র কন্টেন্ট ও কনফিগারেশন প্রিভিউ চ্যানেলে Hostingডেপ্লয় করে
firebase deploy \
--only storage:TARGET_NAME
শুধুমাত্র নির্দিষ্ট Cloud Storage টার্গেটের জন্য নিয়ম ফাইল ডেপ্লয় করে
firebase deploy \
--only database:TARGET_NAME
নির্দিষ্ট Realtime Database টার্গেটের জন্য শুধুমাত্র নিয়ম ফাইল ডেপ্লয় করে