Firebase Hosting এমুলেটর ব্যবহার করে আপনার ওয়েব অ্যাপের প্রোটোটাইপিং এবং টেস্টিং শুরু করার আগে, নিশ্চিত হয়ে নিন যে আপনি Firebase Local Emulator Suite সামগ্রিক কার্যপ্রবাহ (workflow) বুঝতে পেরেছেন , এবং Local Emulator Suite ইনস্টল ও কনফিগার করার পাশাপাশি এর CLI কমান্ডগুলো পর্যালোচনা করেছেন।
আপনার Firebase Hosting এর বৈশিষ্ট্য এবং বাস্তবায়ন কর্মপ্রবাহ সম্পর্কেও পরিচিত থাকা উচিত। Firebase Hosting এর পরিচিতি দিয়ে শুরু করুন।
Firebase Hosting এমুলেটর দিয়ে আমি কী করতে পারি?
Firebase Hosting এমুলেটর Hosting পরিষেবাগুলির একটি উচ্চ-মানের স্থানীয় এমুলেশন প্রদান করে, যা প্রোডাকশন Hosting এ উপলব্ধ অনেক কার্যকারিতা সরবরাহ করে। Hosting এমুলেটর আপনাকে নিম্নলিখিত কাজগুলো করতে দেয়:
- স্টোরেজ বা অ্যাক্সেস চার্জ ছাড়াই আপনার স্ট্যাটিক সাইট এবং ওয়েব অ্যাপের প্রোটোটাইপ তৈরি করুন।
- আপনার হোস্টিং সাইটে স্থাপন করার আগে HTTPS ফাংশনগুলির প্রোটোটাইপ তৈরি করুন, পরীক্ষা করুন এবং ডিবাগ করুন।
- কন্টেইনারাইজড, নিরবচ্ছিন্ন ইন্টিগ্রেশন ওয়ার্কফ্লোতে সাইট এবং ওয়েব অ্যাপ পরীক্ষা করুন।
একটি ফায়ারবেস প্রজেক্ট বেছে নিন
Firebase Local Emulator Suite একটিমাত্র ফায়ারবেস প্রোজেক্টের প্রোডাক্টগুলোকে এমুলেট করে।
ব্যবহার করার জন্য প্রজেক্ট নির্বাচন করতে, এমুলেটরগুলো চালু করার আগে, আপনার ওয়ার্কিং ডিরেক্টরিতে CLI-তে firebase use চালান। অথবা, আপনি প্রতিটি এমুলেটর কমান্ডে --project ফ্ল্যাগটি পাস করতে পারেন।
Local Emulator Suite বাস্তব ফায়ারবেস প্রজেক্ট এবং ডেমো প্রজেক্টের এমুলেশন সমর্থন করে।
| প্রকল্পের ধরণ | বৈশিষ্ট্য | এমুলেটরের সাথে ব্যবহার করুন |
|---|---|---|
| বাস্তব | একটি প্রকৃত Firebase প্রজেক্ট হলো সেটি যা আপনি তৈরি এবং কনফিগার করেছেন (সম্ভবত Firebase কনসোলের মাধ্যমে)। বাস্তব প্রজেক্টগুলিতে লাইভ রিসোর্স থাকে, যেমন ডাটাবেস ইনস্ট্যান্স, স্টোরেজ বাকেট, ফাংশন, বা অন্য যেকোনো রিসোর্স যা আপনি সেই Firebase প্রজেক্টের জন্য সেট আপ করেছেন। | আসল Firebase প্রোজেক্ট নিয়ে কাজ করার সময়, আপনি সমর্থিত যেকোনো বা সমস্ত প্রোডাক্টের জন্য এমুলেটর চালাতে পারেন। যেসব প্রোডাক্ট আপনি এমুলেট করছেন না, সেগুলোর ক্ষেত্রে আপনার অ্যাপ ও কোড লাইভ রিসোর্সের (যেমন ডেটাবেস ইনস্ট্যান্স, স্টোরেজ বাকেট, ফাংশন ইত্যাদি) সাথে ইন্টারঅ্যাক্ট করবে। |
| ডেমো | একটি ডেমো ফায়ারবেস প্রজেক্টে কোনো বাস্তব ফায়ারবেস কনফিগারেশন বা লাইভ রিসোর্স থাকে না। এই প্রজেক্টগুলো সাধারণত কোডল্যাব বা অন্যান্য টিউটোরিয়ালের মাধ্যমে ব্যবহার করা হয়। ডেমো প্রজেক্টগুলোর আইডির শুরুতে | ডেমো ফায়ারবেস প্রজেক্ট নিয়ে কাজ করার সময়, আপনার অ্যাপ এবং কোড শুধুমাত্র এমুলেটরের সাথেই ইন্টারঅ্যাক্ট করে। যদি আপনার অ্যাপ এমন কোনো রিসোর্সের সাথে ইন্টারঅ্যাক্ট করার চেষ্টা করে যার জন্য কোনো এমুলেটর চলছে না, তাহলে সেই কোডটি ব্যর্থ হবে। |
আমরা আপনাকে যথাসম্ভব ডেমো প্রজেক্ট ব্যবহার করার পরামর্শ দিই। এর সুবিধাগুলোর মধ্যে রয়েছে:
- সেটআপ করা সহজ, কারণ কোনো Firebase প্রজেক্ট তৈরি না করেই এমুলেটরগুলো চালানো যায়।
- আরও শক্তিশালী সুরক্ষা, কারণ যদি আপনার কোড ভুলবশত নন-এমুলেটেড (প্রোডাকশন) রিসোর্স ব্যবহার করে, তাহলেও ডেটা পরিবর্তন, ব্যবহার এবং বিলিং-এর কোনো সম্ভাবনা থাকে না।
- উন্নততর অফলাইন সাপোর্ট, কারণ আপনার SDK কনফিগারেশন ডাউনলোড করার জন্য ইন্টারনেট অ্যাক্সেস করার প্রয়োজন নেই।
মূল প্রোটোটাইপিং ওয়ার্কফ্লো
যদি আপনি দ্রুত পরিবর্তন করতে চান অথবা আপনার অ্যাপকে অনুকৃত ব্যাকএন্ড প্রজেক্ট রিসোর্সের সাথে ইন্টারঅ্যাক্ট করাতে চান, তাহলে আপনি আপনার Hosting কন্টেন্ট এবং কনফিগারেশন স্থানীয়ভাবে পরীক্ষা করতে পারেন। স্থানীয়ভাবে পরীক্ষা করার সময়, Firebase আপনার ওয়েব অ্যাপটিকে একটি স্থানীয়ভাবে হোস্ট করা URL-এ পরিবেশন করে।
(ঐচ্ছিক) ডিফল্টরূপে, আপনার স্থানীয়ভাবে হোস্ট করা অ্যাপটি অনুকরণ করা নয়, বরং আসল প্রজেক্ট রিসোর্স (ফাংশন, ডেটাবেস, রুলস, ইত্যাদি) ব্যবহার করবে। এর পরিবর্তে, আপনি চাইলে আপনার কনফিগার করা যেকোনো অনুকরণ করা প্রজেক্ট রিসোর্স ব্যবহার করার জন্য অ্যাপটিকে সংযুক্ত করতে পারেন। আরও জানুন: Realtime Database | Cloud Firestore | Cloud Functions
আপনার স্থানীয় প্রজেক্ট ডিরেক্টরির রুট থেকে নিম্নলিখিত কমান্ডটি চালান:
firebase emulators:start
CLI দ্বারা প্রাপ্ত স্থানীয় URL-এ (সাধারণত
http://localhost:5000) আপনার ওয়েব অ্যাপটি খুলুন।পরিবর্তনসহ স্থানীয় ইউআরএল আপডেট করতে, আপনার ব্রাউজার রিফ্রেশ করুন।
অন্যান্য স্থানীয় ডিভাইস থেকে পরীক্ষা করুন
ডিফল্টরূপে, এমুলেটরগুলো শুধুমাত্র localhost থেকে আসা অনুরোধে সাড়া দেয়। এর মানে হলো, আপনি আপনার কম্পিউটারের ওয়েব ব্রাউজার থেকে আপনার হোস্ট করা কন্টেন্ট অ্যাক্সেস করতে পারবেন, কিন্তু আপনার নেটওয়ার্কের অন্য কোনো ডিভাইস থেকে পারবেন না। আপনি যদি অন্য লোকাল ডিভাইস থেকে পরীক্ষা করতে চান, তাহলে আপনার firebase.json নিম্নোক্তভাবে কনফিগার করুন:
"emulators": {
// ...
"hosting": {
"port": 5000,
"host": "0.0.0.0"
}
}
কন্টিনিউয়াস ইন্টিগ্রেশন ওয়ার্কফ্লোর জন্য অথোরাইজেশন টোকেন তৈরি করুন
আপনার কন্টিনিউয়াস ইন্টিগ্রেশন ওয়ার্কফ্লো যদি ফায়ারবেস হোস্টিং-এর উপর নির্ভরশীল হয়, তাহলে firebase emulators:exec চালানোর জন্য আপনাকে একটি টোকেন ব্যবহার করে লগ ইন করতে হবে। অন্যান্য এমুলেটরগুলোর জন্য লগ ইনের প্রয়োজন হয় না।
একটি টোকেন তৈরি করতে, আপনার লোকাল এনভায়রনমেন্টে firebase login:ci চালান; এটি কোনো CI সিস্টেম থেকে করা উচিত নয়। প্রমাণীকরণের জন্য নির্দেশাবলী অনুসরণ করুন। প্রতিটি প্রজেক্টের জন্য এই ধাপটি কেবল একবারই করতে হবে, কারণ টোকেনটি সমস্ত বিল্ড জুড়ে বৈধ থাকবে। টোকেনটিকে পাসওয়ার্ডের মতো ব্যবহার করা উচিত; এটি যেন গোপন থাকে তা নিশ্চিত করুন।
যদি আপনার CI এনভায়রনমেন্টে বিল্ড স্ক্রিপ্টে ব্যবহার করার জন্য এনভায়রনমেন্ট ভেরিয়েবল নির্দিষ্ট করার সুযোগ থাকে, তাহলে FIREBASE_TOKEN নামে একটি এনভায়রনমেন্ট ভেরিয়েবল তৈরি করুন এবং এর ভ্যালু হিসেবে অ্যাক্সেস টোকেন স্ট্রিংটি দিন। Firebase CLI স্বয়ংক্রিয়ভাবে FIREBASE_TOKEN এনভায়রনমেন্ট ভেরিয়েবলটি গ্রহণ করবে এবং এমুলেটরগুলো সঠিকভাবে চালু হবে।
শেষ উপায় হিসেবে, আপনি আপনার বিল্ড স্ক্রিপ্টে টোকেনটি অন্তর্ভুক্ত করতে পারেন, তবে নিশ্চিত করুন যে অবিশ্বস্ত পক্ষগুলোর যেন এতে অ্যাক্সেস না থাকে। এই হার্ড-কোডেড পদ্ধতির জন্য, আপনি firebase emulators:exec কমান্ডে --token "YOUR_TOKEN_STRING_HERE" যোগ করতে পারেন।
এরপর কী?
- ফায়ারবেস ওয়েব কোডল্যাব অনুসরণ করে Hosting এমুলেটর ব্যবহার করে একটি কুইকস্টার্ট চালান।
- ফাংশন সম্পর্কিত হোস্টিং গাইডে বর্ণিত পদ্ধতি অনুযায়ী Hosting এমুলেটর ব্যবহার করে কীভাবে HTTPS ফাংশনের প্রোটোটাইপ তৈরি করতে হয়, তা বুঝুন।
- নির্বাচিত ভিডিও এবং বিস্তারিত নির্দেশনামূলক উদাহরণের জন্য, ফায়ারবেস এমুলেটর প্রশিক্ষণ প্লেলিস্টটি অনুসরণ করুন।