App Hosting স্থাপনের আগে আপনি App Hosting এমুলেটর ব্যবহার করে আপনার অ্যাপের স্থানীয় পরীক্ষা করতে পারেন, যা ফায়ারবেস লোকাল এমুলেটর স্যুটের অংশ।
App Hosting এমুলেটর ব্যবহার করার আগে, নিশ্চিত করুন যে আপনি সামগ্রিক ফায়ারবেস Local Emulator Suite ওয়ার্কফ্লো বুঝতে পেরেছেন এবং আপনি Local Emulator Suite ইনস্টল এবং কনফিগার করেছেন এবং এর CLI কমান্ডগুলি পর্যালোচনা করেছেন।
এই বিষয়টি ধরে নেওয়া হচ্ছে যে আপনি ইতিমধ্যেই App Hosting সাথে পরিচিত। প্রয়োজনে, App Hosting কীভাবে কাজ করে তা বুঝতে সাহায্য করার জন্য App Hosting ভূমিকা এবং অন্যান্য উপকরণ পর্যালোচনা করুন।
App Hosting এমুলেটর দিয়ে আমি কী করতে পারি?
App Hosting এমুলেটর আপনাকে স্থানীয়ভাবে আপনার ওয়েব অ্যাপ্লিকেশনগুলি পরীক্ষা এবং পরিমার্জন করতে দেয়। এটি আপনার ডেভেলপমেন্ট প্রক্রিয়াটিকে সহজতর করতে পারে এবং Firebase ব্যবহার করে তৈরি এবং App Hosting এ স্থাপন করা ওয়েব অ্যাপগুলির মান উন্নত করতে পারে।
App Hosting এমুলেটর:
-  apphosting.yamlকনফিগারেশন ফাইলগুলিতে সংজ্ঞায়িত পরিবেশগত ভেরিয়েবল এবং গোপনীয়তা সহ, আপনাকে স্থানীয়ভাবে আপনার ওয়েব অ্যাপ চালাতে দেয়।
-  apphosting.emulator.yamlফাইলের সাহায্যে এমুলেটরে ব্যবহারের জন্য পরিবেশগত ভেরিয়েবল এবং গোপনীয়তাগুলিকে ওভাররাইড করতে পারে।
- অন্যান্য Firebase এমুলেটরের সাথে ব্যবহার করা যেতে পারে। আপনি যদি Firestore, Auth, অথবা অন্য কোনও এমুলেটর ব্যবহার করেন, তাহলে Local Emulator Suite নিশ্চিত করে যে App Hosting এমুলেটরের আগে এই এমুলেটরগুলি প্রথমে চালু করা হয়েছে।
এমুলেটরটি কনফিগার করুন
 শুরু করতে, "Install, configure and integrate Local Emulator Suite" বিভাগে বর্ণিত " Local Emulator Suite ইনস্টল এবং ইনিশিয়ালাইজ করুন। আপনি যে অন্য Firebase এমুলেটর সেট আপ করতে চান তার পাশাপাশি, App Hosting Emulator নির্বাচন করতে ভুলবেন না। CLI আপনাকে কিছু App Hosting এমুলেটর মান সম্পর্কে জিজ্ঞাসা করবে, যার মধ্যে রয়েছে:
- প্রকল্পের সাথে সম্পর্কিত আপনার অ্যাপের রুট ডিরেক্টরি; আপনি যদি App Hosting এর সাথে মনোরেপোস ব্যবহার করেন তবে এটি গুরুত্বপূর্ণ।
- স্থানীয় উন্নয়নের জন্য আপনি কি কোনও মূল্যবোধকে অগ্রাহ্য করতে চান?
- আপনি কি স্থানীয় উন্নয়নের গোপন তথ্যে সতীর্থদের অ্যাক্সেস দিতে চান?
firebase init emulators
=== Emulators Setup
? Which Firebase emulators do you want to set up? Press Space to select emulators, then Enter to confirm your choices. (Press
<space> to select, <a> to toggle all, <i> to invert selection, and <enter> to proceed)
❯◯ App Hosting Emulator
 ◯ Firestore Emulator
 ◯ Database Emulator
 ◯ Hosting Emulator
 ◯ Pub/Sub Emulator
 ◯ Storage Emulator
 ◯ Eventarc Emulator
(Move up and down to reveal more choices)
? Specify your app's root directory relative to your project (./)
? The App Hosting emulator uses a file called apphosting.emulator.yaml to
override values in apphosting.yaml for local testing. This codebase does not
have one, would you like to create it? (Y/n)
? Which environment variables would you like to override? (Press <space> to
select, <a> to toggle all, <i> to invert selection, and <enter> to proceed)
❯◯ MEMCACHE_ADDR
 ◯ API_KEY
? What new value would you like for plaintext MEMCACHE_ADDR?
? What would you like to name the secret reference for API_KEY? (test-api-key)
? What new value would you like for secret TESTKEY [input is hidden]? [input is hidden]
? Your config has secret values. Please provide a comma-separated list of users
or groups who should have access to secrets for local development:
✔  Successfully set IAM bindings on secret test-api-key.
 এই সেটআপ ফ্লোতে আপনার প্রদত্ত যেকোনো মান firebase.json এ আপনার App Hosting এমুলেটর কনফিগারেশন আপডেট করতে ব্যবহৃত হয়। আপনি সরাসরি firebase.json আপডেট করে অ্যাপ হোস্টিং এমুলেটর কনফিগার করতে পারেন। অ্যাপ হোস্টিং এমুলেটরের স্কিমা হল:
{
  ...
  "emulators": {
    "apphosting": {
      "startCommand": <command> [optional]
      "rootDirectory": <path> [optional]
      }
    }
  }
-  এমুলেটরটি শুরু হলে startCommandস্বয়ংক্রিয়ভাবে তৈরি এবং সেট হয়ে যায়। যদি সরবরাহ না করা হয়, তাহলে এমুলেটরটি আপনার প্যাকেজ ম্যানেজারের dev কমান্ডটি সনাক্ত করবে এবং চালাবে।
-  rootDirectorymonorepo প্রজেক্ট সেটআপ সমর্থন করার জন্য ব্যবহৃত হয়। যদি আপনার ওয়েব অ্যাপটি একটি সাবডিরেক্টরিতে থাকে, তাহলে আপনাকে রুটের (firebase.jsonএর অবস্থান) সাপেক্ষে সেই ডিরেক্টরির পাথ প্রদান করতে হবে।
ইমুলেশন পরিচালনা করুন
 এমুলেটর ইনিশিয়ালাইজেশন আপনার অ্যাপের রুট ডিরেক্টরিতে একটি apphosting.emulator.yaml ফাইল তৈরি করে। এই কনফিগারেশন ফাইলটিতে প্রোডাকশনে ব্যবহৃত apphosting.yaml ফাইলের মতো একই স্কিমা রয়েছে, তবে এটি কেবল স্থানীয় ডেভেলপমেন্টের জন্য তৈরি। ডিফল্টরূপে, এমুলেটর আপনার apphosting.yaml ফাইল থেকে কনফিগারেশন পড়ে, কিন্তু যদি একটি apphosting.emulator.yaml ফাইল উপস্থিত থাকে, তাহলে সেই ফাইলের কনফিগারেশনগুলিকে অগ্রাধিকার দেওয়া হয় এবং অগ্রাধিকার দেওয়া হয়।
 apphosting.emulator.yaml ফাইলটি এমনভাবে তৈরি করা হয়েছে যাতে সহকর্মীদের সাথে নিরাপদে কমিট করা এবং শেয়ার করা যায়। সংবেদনশীল ডেটা যাতে দুর্ঘটনাক্রমে সোর্স রিপোজিটরিতে কমিট না হয় তা নিশ্চিত করতে, apphosting.yaml এ গোপন থাকা যেকোনো পরিবেশ পরিবর্তনশীলকে apphosting.emulator.yaml এও গোপন থাকতে হবে। যদি কোনও গোপন তথ্যের জন্য উৎপাদন এবং স্থানীয় বিকাশের মধ্যে পরিবর্তনের প্রয়োজন না হয় (যেমন একটি Gemini API কী), তাহলে এটি apphosting.emulator.yaml এ যোগ করার প্রয়োজন নেই; পরিবর্তে আপনার দলকে secret অ্যাক্সেস দিন ।
 যদি আপনার অ্যাপ্লিকেশনটি অনেক গোপনীয়তা ব্যবহার করে (উদাহরণস্বরূপ, তিনটি ভিন্ন পরিষেবার জন্য API কী, প্রতিটি উৎপাদন, স্টেজিং এবং স্থানীয় উন্নয়নের জন্য আলাদা মান সহ), তাহলে আপনি ক্লাউড সিক্রেট ম্যানেজারের বিনামূল্যের স্তর অতিক্রম করতে পারেন এবং প্রতি মাসে অতিরিক্ত গোপনীয়তার জন্য $0.06 দিতে পারেন। এই ফি এড়াতে যদি আপনি সোর্স নিয়ন্ত্রণের বাইরে স্থানীয় কনফিগারেশন পরিচালনা করতে চান, তাহলে আপনি লিগ্যাসি apphosting.local.yaml ফাইলটি ব্যবহার করতে পারেন। apphosting.emulator.yaml বিপরীতে, এই ফাইলটি apphosting.yaml এর গোপনীয় মান হিসাবে পরিবেশগত ভেরিয়েবলের জন্য প্লেইনটেক্সট মান প্রদান করতে অনুমোদিত।
ব্যবহারকারী বা গোষ্ঠীগুলিকে গোপন তথ্যে অ্যাক্সেস দিন
 এমুলেটরটি শুরু হলে apphosting.emulator.yaml এ সংরক্ষিত গোপন তথ্যগুলি পড়া হয়। এর মানে হল আপনার ডেভেলপমেন্ট টিমের গোপন তথ্যের অ্যাক্সেসের প্রয়োজন। আপনি apphosting:secrets:grantaccess কমান্ড ব্যবহার করে কোনও ব্যবহারকারী বা কোনও গোষ্ঠীকে ইমেলের মাধ্যমে কোনও গোপন তথ্যের অ্যাক্সেস দিতে পারেন।
firebase apphosting:secrets:grantaccess test-api-key --emails my-team@my-company.com
 প্রযোজ্য ক্ষেত্রে, apphosting.emulator.yaml এ শুধুমাত্র পরীক্ষামূলক কী ব্যবহার করার কথা বিবেচনা করুন, যেগুলির উৎপাদন ডেটাতে অ্যাক্সেস নেই, বিশ্বব্যাপী পার্শ্ব প্রতিক্রিয়া থাকতে পারে না (ইমেল পাঠানো, ক্রেডিট কার্ড চার্জ করা), এবং/অথবা কম কোটা থাকতে পারে। এটি নিশ্চিত করতে সাহায্য করে যে অ-পর্যালোচিত কোডের বাস্তব-বিশ্বের পরিণতি কম।
 গোপন তথ্যের অ্যাক্সেস পরিচালনা করার জন্য গুগল গ্রুপ ব্যবহার করার কথা বিবেচনা করুন, ব্যক্তিগত ব্যবহারকারীদের অ্যাক্সেস দেওয়ার পরিবর্তে। এটি আপনার ডেভেলপার টিমে নতুন সদস্যদের অন্তর্ভুক্ত করা সহজ করবে কারণ তাদের গ্রুপে যুক্ত করলে তারা তাদের প্রয়োজনীয় সমস্ত গোপন তথ্যে অ্যাক্সেস পাবে। আপনার ইতিমধ্যেই একটি উপযুক্ত গ্রুপ থাকতে পারে যেখানে ডেভেলপাররা একে অপরের সাথে যোগাযোগ করে। গুগল গ্রুপের অ্যাক্সেস নিয়ন্ত্রণ করা নিশ্চিত করতেও সাহায্য করে যে আপনার দল ছেড়ে যাওয়া ডেভেলপাররা ইমেল গ্রুপ থেকে সরানোর পরে সমস্ত গোপন তথ্যের অ্যাক্সেস হারাবে। যদি গোপন তথ্যের প্রোডাকশন ডেটা বা বাস্তব-বিশ্বের পার্শ্ব প্রতিক্রিয়াগুলিতে অ্যাক্সেস থাকে, তবে আপনার কীটি ঘোরানো এবং firebase apphosting:secrets:set দিয়ে এটিকে একটি নতুন মান দেওয়া উপযুক্ত হতে পারে।
এমুলেটরটি চালান
firebase emulators:start
 এটি আপনার firebase.json ফাইলে সংজ্ঞায়িত সমস্ত এমুলেটর শুরু করবে, যার মধ্যে App Hosting এমুলেটরও রয়েছে।