স্থানীয়ভাবে আপনার ওয়েব অ্যাপ পরীক্ষা করুন, অন্যদের সাথে পরিবর্তনগুলি ভাগ করুন, তারপর লাইভ স্থাপন করুন

আপনার লাইভ সাইটে স্থাপন করার আগে, আপনাকে আপনার পরিবর্তনগুলি দেখতে এবং পরীক্ষা করতে হবে। Firebase Hosting আপনাকে স্থানীয়ভাবে পরিবর্তনগুলি দেখতে এবং পরীক্ষা করতে এবং অনুকরণ করা ব্যাকএন্ড প্রকল্প সংস্থানগুলির সাথে ইন্টারঅ্যাক্ট করতে সক্ষম করে। যদি আপনার সতীর্থদের আপনার পরিবর্তনগুলি দেখতে এবং পরীক্ষা করতে চান, তাহলে Hosting আপনার সাইটের জন্য শেয়ারযোগ্য, অস্থায়ী প্রিভিউ URL তৈরি করতে পারে। এমনকি আমরা একটি পুল অনুরোধ থেকে স্থাপনের জন্য একটি GitHub ইন্টিগ্রেশন সমর্থন করি।

শুরু করার আগে

Hosting শুরু করুন পৃষ্ঠায় তালিকাভুক্ত পদক্ষেপগুলি সম্পূর্ণ করুন, বিশেষ করে নিম্নলিখিত কাজগুলি:

  1. Firebase CLI এর সর্বশেষ সংস্করণে ইনস্টল বা আপডেট করুন।
  2. আপনার Firebase প্রকল্পের সাথে স্থানীয় প্রকল্প ডিরেক্টরি (আপনার অ্যাপের বিষয়বস্তু ধারণকারী) সংযুক্ত করুন।

আপনি ঐচ্ছিকভাবে আপনার অ্যাপের Hosting কন্টেন্ট এবং কনফিগারেশন স্থাপন করতে পারেন, তবে এই পৃষ্ঠার ধাপগুলির জন্য এটি পূর্বশর্ত নয়।

ধাপ ১: স্থানীয়ভাবে পরীক্ষা করুন

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

Hosting হল Firebase Local Emulator Suite অংশ, যা আপনার অ্যাপকে আপনার এমুলেটেড Hosting কন্টেন্ট এবং কনফিগারেশনের সাথে ইন্টারঅ্যাক্ট করতে সক্ষম করে, সেইসাথে ঐচ্ছিকভাবে আপনার এমুলেটেড প্রজেক্ট রিসোর্স (ফাংশন, ডাটাবেস এবং নিয়ম)।

  1. (ঐচ্ছিক) ডিফল্টরূপে, আপনার স্থানীয়ভাবে হোস্ট করা অ্যাপটি বাস্তব , অনুকরণ করা নয়, প্রকল্প সংস্থানগুলির (ফাংশন, ডাটাবেস, নিয়ম, ইত্যাদি) সাথে ইন্টারঅ্যাক্ট করবে। পরিবর্তে আপনি আপনার কনফিগার করা যেকোনো অনুকরণ করা প্রকল্প সংস্থান ব্যবহার করার জন্য ঐচ্ছিকভাবে আপনার অ্যাপটি সংযুক্ত করতে পারেন। আরও জানুন: Realtime Database | Cloud Firestore | Cloud Functions

  2. আপনার স্থানীয় প্রকল্প ডিরেক্টরির মূল থেকে, নিম্নলিখিত কমান্ডটি চালান:

    firebase emulators:start
  3. CLI দ্বারা প্রদত্ত স্থানীয় URL (সাধারণত http://localhost:5000 ) এ আপনার ওয়েব অ্যাপটি খুলুন।

  4. পরিবর্তন সহ স্থানীয় URL আপডেট করতে, আপনার ব্রাউজার রিফ্রেশ করুন।

অন্যান্য স্থানীয় ডিভাইস থেকে পরীক্ষা করুন

ডিফল্টরূপে, এমুলেটরগুলি কেবল localhost থেকে আসা অনুরোধগুলিতে সাড়া দেয়। এর অর্থ হল আপনি আপনার কম্পিউটারের ওয়েব ব্রাউজার থেকে আপনার হোস্ট করা সামগ্রী অ্যাক্সেস করতে পারবেন কিন্তু আপনার নেটওয়ার্কের অন্যান্য ডিভাইস থেকে নয়। আপনি যদি অন্যান্য স্থানীয় ডিভাইস থেকে পরীক্ষা করতে চান, তাহলে আপনার firebase.json কনফিগার করুন:

"emulators": {
    // ...

    "hosting": {
      "port": 5000,
      "host": "0.0.0.0"
    }
  }

ধাপ ২: প্রিভিউ এবং শেয়ার করুন

যদি আপনি চান যে অন্যরা লাইভ হওয়ার আগে আপনার ওয়েব অ্যাপের পরিবর্তনগুলি দেখুক, তাহলে আপনি প্রিভিউ চ্যানেল ব্যবহার করতে পারেন।

একটি প্রিভিউ চ্যানেলে স্থাপন করার পর, Firebase আপনার ওয়েব অ্যাপটিকে একটি "প্রিভিউ URL"-এ পরিবেশন করে, যা একটি শেয়ারযোগ্য, অস্থায়ী URL। একটি প্রিভিউ URL ব্যবহার করার সময়, আপনার ওয়েব অ্যাপটি সমস্ত প্রকল্প সংস্থানের জন্য আপনার আসল ব্যাকএন্ডের সাথে ইন্টারঅ্যাক্ট করে ( আপনার পুনর্লিখন কনফিগারেশনে যেকোনো "পিন করা" ফাংশন বাদে)।

মনে রাখবেন যে প্রিভিউ URL গুলি অনুমান করা কঠিন (কারণ এগুলিতে একটি র‍্যান্ডম হ্যাশ থাকে), তবে এগুলি সর্বজনীন। তাই, যারা URL টি জানেন তারা এটি অ্যাক্সেস করতে পারবেন।

  1. আপনার স্থানীয় প্রকল্প ডিরেক্টরির মূল থেকে, নিম্নলিখিত কমান্ডটি চালান:

    firebase hosting:channel:deploy CHANNEL_ID

    CHANNEL_ID পরিবর্তে কোনও স্পেস ছাড়াই একটি স্ট্রিং লিখুন (উদাহরণস্বরূপ, feature_mission-2-mars )। এই আইডিটি প্রিভিউ চ্যানেলের সাথে সম্পর্কিত প্রিভিউ URL তৈরি করতে ব্যবহার করা হবে।

  2. CLI দ্বারা প্রদত্ত প্রিভিউ URL-এ আপনার ওয়েব অ্যাপটি খুলুন। এটি দেখতে এরকম কিছু হবে: PROJECT_ID -- CHANNEL_ID - RANDOM_HASH .web.app

  3. পরিবর্তন সহ আপনার প্রিভিউ URL আপডেট করতে, একই কমান্ডটি আবার চালান। কমান্ডে একই CHANNEL_ID উল্লেখ করতে ভুলবেন না।

চ্যানেলের প্রিভিউ পরিচালনা সম্পর্কে জানুন, যার মধ্যে চ্যানেলের মেয়াদ কীভাবে সেট করবেন তাও জানুন।

Firebase Hosting একটি গিটহাব অ্যাকশন সমর্থন করে যা আপনি যখন কোনও পুল অনুরোধে পরিবর্তন করেন তখন স্বয়ংক্রিয়ভাবে একটি প্রিভিউ URL তৈরি করে এবং আপডেট করে। এই গিটহাব অ্যাকশনটি কীভাবে সেট আপ এবং ব্যবহার করবেন তা শিখুন।

ধাপ ৩: লাইভ স্থাপন করুন

যখন আপনি আপনার পরিবর্তনগুলি বিশ্বের সাথে ভাগ করে নেওয়ার জন্য প্রস্তুত হবেন, তখন আপনার Hosting সামগ্রী এবং কনফিগারেশনটি আপনার লাইভ চ্যানেলে স্থাপন করুন। আপনার ব্যবহারের ক্ষেত্রের উপর নির্ভর করে Firebase এই পদক্ষেপের জন্য কয়েকটি ভিন্ন বিকল্প অফার করে (নীচের বিকল্পগুলি দেখুন)।

বিকল্প ১: একটি প্রিভিউ চ্যানেল থেকে আপনার লাইভ চ্যানেলে ক্লোন করুন

এই বিকল্পটি আপনাকে আত্মবিশ্বাস দেয় যে আপনি আপনার লাইভ চ্যানেলে সেই সঠিক সামগ্রী এবং কনফিগারেশনটি স্থাপন করছেন যা আপনি একটি প্রিভিউ চ্যানেলে পরীক্ষা করেছিলেন। ক্লোনিং সংস্করণ সম্পর্কে আরও জানুন।

  1. যেকোনো ডিরেক্টরি থেকে, নিম্নলিখিত কমান্ডটি চালান:

    firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:live

    প্রতিটি স্থানধারক নিম্নলিখিত দিয়ে প্রতিস্থাপন করুন:

    • SOURCE_SITE_ID এবং TARGET_SITE_ID : এগুলি হল Hosting সাইটগুলির আইডি যেখানে চ্যানেলগুলি থাকে।

      • আপনার ডিফল্ট Hosting সাইটের জন্য, আপনার Firebase প্রজেক্ট আইডি ব্যবহার করুন।
      • আপনি একই Firebase প্রকল্পে অথবা এমনকি বিভিন্ন Firebase প্রকল্পে থাকা সাইটগুলি নির্দিষ্ট করতে পারেন।
    • SOURCE_CHANNEL_ID : এটি হল সেই চ্যানেলের শনাক্তকারী যা বর্তমানে আপনার লাইভ চ্যানেলে যে সংস্করণটি স্থাপন করতে চান তা পরিবেশন করছে।

      • লাইভ চ্যানেলের জন্য, চ্যানেল আইডি হিসেবে live ব্যবহার করুন।
  2. আপনার পরিবর্তনগুলি দেখুন (পরবর্তী ধাপ)।

বিকল্প ২: আপনার স্থানীয় প্রকল্প ডিরেক্টরি থেকে আপনার লাইভ চ্যানেলে স্থাপন করুন

এই বিকল্পটি আপনাকে লাইভ চ্যানেলের জন্য নির্দিষ্ট কনফিগারেশনগুলি সামঞ্জস্য করার জন্য নমনীয়তা প্রদান করে অথবা আপনি যদি কোনও প্রিভিউ চ্যানেল ব্যবহার না করে থাকেন তবেও স্থাপন করতে পারে।

  1. আপনার স্থানীয় প্রকল্প ডিরেক্টরির মূল থেকে, নিম্নলিখিত কমান্ডটি চালান:

    firebase deploy --only hosting
  2. আপনার পরিবর্তনগুলি দেখুন (পরবর্তী ধাপ)।

ধাপ ৪: আপনার লাইভ সাইটে আপনার পরিবর্তনগুলি দেখুন

উপরের দুটি বিকল্পই আপনার Hosting কন্টেন্ট এবং কনফিগারেশন নিম্নলিখিত সাইটগুলিতে স্থাপন করে:

  • আপনার ডিফল্ট Hosting সাইট এবং যেকোনো অতিরিক্ত Hosting সাইটের জন্য Firebase-প্রভিশনেড সাবডোমেন:
    SITE_ID .web.app (যেমন PROJECT_ID .web.app )
    SITE_ID .firebaseapp.com (যেমন PROJECT_ID .firebaseapp.com )

  • আপনার Hosting সাইট(গুলি) এর সাথে সংযুক্ত যেকোনো কাস্টম ডোমেন

একটি নির্দিষ্ট Hosting সাইটে ডিপ্লয় সীমাবদ্ধ করতে, আপনার CLI কমান্ডে একটি ডিপ্লয় টার্গেট নির্দিষ্ট করুন

অন্যান্য স্থাপনার কার্যকলাপ এবং তথ্য

স্থাপনার জন্য একটি মন্তব্য যোগ করুন

আপনি ঐচ্ছিকভাবে একটি স্থাপনায় একটি মন্তব্য যোগ করতে পারেন। এই মন্তব্যটি Firebase কনসোলের Hosting ড্যাশবোর্ডে অন্যান্য স্থাপনার তথ্যের সাথে প্রদর্শিত হবে। উদাহরণস্বরূপ:

firebase deploy --only hosting -m "Deploying the best new feature ever."

প্রি-ডিপ্লয় এবং পোস্ট-ডিপ্লয় স্ক্রিপ্টেড টাস্ক যোগ করুন

আপনি ঐচ্ছিকভাবে শেল স্ক্রিপ্টগুলিকে firebase deploy কমান্ডের সাথে সংযুক্ত করতে পারেন যাতে predeploy বা postdeploy কাজগুলি করা যায়। উদাহরণস্বরূপ, একটি postdeploy হুক প্রশাসকদের নতুন সাইটের কন্টেন্ট deploy সম্পর্কে অবহিত করতে পারে। আরও বিস্তারিত জানার জন্য Firebase CLI ডকুমেন্টেশন দেখুন।

মোতায়েন করা কন্টেন্ট ক্যাশে করা হচ্ছে

যখন স্ট্যাটিক কন্টেন্টের জন্য অনুরোধ করা হয়, তখন Firebase Hosting স্বয়ংক্রিয়ভাবে সিডিএন-এ কন্টেন্ট ক্যাশে করে। আপনি যদি আপনার সাইটের কন্টেন্ট পুনরায় স্থাপন করেন, তাহলে ফায়ারবেস স্বয়ংক্রিয়ভাবে সিডিএন জুড়ে আপনার সমস্ত ক্যাশেড স্ট্যাটিক কন্টেন্ট সাফ করে দেয় যাতে নতুন অনুরোধগুলি আপনার নতুন কন্টেন্ট গ্রহণ করে।

মনে রাখবেন যে আপনি গতিশীল সামগ্রীর ক্যাশিং কনফিগার করতে পারেন।

HTTPS এর মাধ্যমে পরিষেবা প্রদান করা হচ্ছে

নিশ্চিত করুন যে Firebase Hosting এ হোস্ট করা নেই এমন সমস্ত বাহ্যিক রিসোর্স SSL (HTTPS) এর মাধ্যমে লোড করা হয়েছে, যার মধ্যে যেকোনো বাহ্যিক স্ক্রিপ্টও রয়েছে। বেশিরভাগ ব্রাউজার ব্যবহারকারীদের "মিশ্র সামগ্রী" (SSL এবং নন-SSL ট্র্যাফিক) লোড করার অনুমতি দেয় না।

ফাইল মুছে ফেলা হচ্ছে

Firebase Hosting এ, একটি স্থাপন করা সাইট থেকে নির্বাচিত ফাইলগুলি মুছে ফেলার প্রাথমিক উপায় হল স্থানীয়ভাবে ফাইলগুলি মুছে ফেলা এবং তারপরে পুনরায় স্থাপন করা।

পরবর্তী পদক্ষেপ