Firebase JavaScript SDK এবং Firebase Admin SDK for Node.js দিয়ে তৈরি ডাইনামিক ওয়েব অ্যাপের জন্য Firebase App Hosting একটি আদর্শ সমাধান। একটি পূর্ণাঙ্গ ওয়েব অ্যাপে Authentication , Cloud Firestore , এবং App Check মতো Firebase SDK-গুলোর গুরুত্বপূর্ণ ভূমিকা থাকে। এই নির্দেশিকাটিতে Firebase SDK-গুলোকে অপ্টিমাইজ করতে এবং Firebase App Hosting এ আপনার ওয়েব অ্যাপে Firebase যুক্ত করার কাজ শুরু করতে সাহায্য করার জন্য কিছু মূল কৌশল বর্ণনা করা হয়েছে।
স্বয়ংক্রিয়ভাবে Firebase Admin SDK এবং ওয়েব এসডিকে চালু করুন
গুগলের Firebase App Hosting মতো পরিবেশগুলো বিল্ড টাইম এবং রানটাইমে কোনো আর্গুমেন্ট ছাড়া কনস্ট্রাক্টর কলের মাধ্যমে অ্যাপ চালু করাকে সহজ করে তোলে। এই বৈশিষ্ট্যটি Firebase Admin SDK ফর নোড.জেএস (একটি সার্ভার-সাইড এসডিকে যা Firebase বিশাল কার্যকারিতা উন্মোচন করে এবং আপনার ওয়েব অ্যাপের জন্য খুব উপযোগী হতে পারে) এবং Firebase JavaScript এসডিকে উভয়েরই রয়েছে।
initializeApp() এর মাধ্যমে, আপনি Firebase App Hosting আপনার জন্য ওয়েব অ্যাপ কনফিগারেশন স্বয়ংক্রিয়ভাবে পূরণ করতে দিতে পারেন, এবং একই সাথে ডিফল্ট মান ওভাররাইড করার জন্য নির্দিষ্ট মানগুলির উপর সূক্ষ্ম নিয়ন্ত্রণ রাখার বিকল্পও বজায় রাখতে পারেন।
কোনো আর্গুমেন্ট ছাড়া শুরু করুন
ডিফল্ট কনফিগারেশন মান সহ Firebase Admin SDK অথবা Firebase JavaScript এসডিকে ইনিশিয়ালাইজ করতে, কোনো আর্গুমেন্ট না দিয়ে initializeApp() ব্যবহার করুন।
Admin SDK
import { initializeApp } from 'firebase-admin/app';
const app = initializeApp();
Admin SDK এর জন্য, এই ইনিশিয়ালাইজেশন কৌশলটি App Hosting পাশাপাশি Cloud Run , App Engine এবং Cloud Run ফাংশন সহ অন্যান্য গুগল সার্ভার পরিবেশেও কাজ করে।
জাভাস্ক্রিপ্ট এসডিকে
import { initializeApp } from 'firebase/app';
const app = initializeApp();
জাভাস্ক্রিপ্ট এসডিকে-এর জন্য, এই ইনিশিয়ালাইজেশন কৌশলটি App Hosting এ কাজ করে।
স্বয়ংক্রিয়ভাবে পূরণ হওয়া মানগুলি ওভাররাইড করুন
আপনি স্বয়ংক্রিয়ভাবে যুক্ত হওয়া ডিফল্ট কনফিগারেশনটি পরিবর্তন করতে পারেন। মনে রাখবেন যে, এই অপশনগুলো Admin SDK এবং জাভাস্ক্রিপ্ট এসডিকে-এর মধ্যে ভিন্ন হয়।
Admin SDK ওভাররাইড
রিয়েলটাইম ডেটাবেস, ক্লাউড স্টোরেজ, বা ক্লাউড ফাংশনের মতো পরিষেবাগুলির জন্য ঐচ্ছিকভাবে কাস্টম ইনিশিয়ালাইজেশন বিকল্পগুলি নির্দিষ্ট করতে, FIREBASE_CONFIG এনভায়রনমেন্ট ভেরিয়েবলটি ব্যবহার করুন। যদি FIREBASE_CONFIG ভেরিয়েবলের বিষয়বস্তু একটি { অক্ষর দিয়ে শুরু হয়, তবে এটি একটি JSON অবজেক্ট হিসাবে পার্স করা হবে। অন্যথায় SDK ধরে নেয় যে স্ট্রিংটি হলো বিকল্পগুলি ধারণকারী একটি JSON ফাইলের পাথ।
# apphosting.yaml
env:
- variable: FIREBASE_CONFIG
value: '{"credential: applicationDefault()","databaseURL":"https://project-id-default-rtdb.firebaseio.com"}'
জাভাস্ক্রিপ্ট এসডিকে ওভাররাইড
জাভাস্ক্রিপ্ট SDK ইনিশিয়ালাইজেশনের জন্য App Hosting দ্বারা ইনজেক্ট করা ডিফল্ট FIREBASE_WEBAPP_CONFIG ভ্যালুগুলোকে ওভাররাইড করতে, আপনি apphosting.yaml এ ভ্যালুগুলো নির্দিষ্ট করে দিতে পারেন:
# apphosting.yaml
env:
- variable: FIREBASE_WEBAPP_CONFIG
value: '{"apiKey":"myApiKey","appId":"app:123","authDomain":"project-id.firebaseapp.com","databaseURL":"https://project-id-default-rtdb.firebaseio.com","messagingSenderId":"0123456789","projectId":"project-id","storageBucket":"project-id.firebasestorage.app"}'
অন্যান্য পরিবেশে স্বয়ংক্রিয় প্রারম্ভিকীকরণ ব্যবহার করা
আপনি যখন Firebase JavaScript SDK ইনস্টল করেন, তখন একটি npm postinstall স্ক্রিপ্টের মাধ্যমে স্বয়ংক্রিয় প্রারম্ভিকীকরণ (automatic initialization) সেট আপ করা হয়। postinstall স্ক্রিপ্টটি FIREBASE_WEBAPP_CONFIG এনভায়রনমেন্ট ভেরিয়েবলটি খুঁজে থাকে, যা App Hosting ক্লাউড বিল্ড এনভায়রনমেন্টে স্বয়ংক্রিয়ভাবে সেট করা থাকে।
আপনি যদি ক্লাউড বিল্ডের বাইরে জেএস এসডিকে ইনস্টল করেন, তাহলে ফায়ারবেস জাভাস্ক্রিপ্ট এসডিকে ইনস্টল করার সময় আপনাকে এই এনভায়রনমেন্ট ভেরিয়েবলটি নিজে থেকেই সেট করতে হবে।
ইনস্টলেশনের সময় পরিবেশটি ম্যানুয়ালি সেট আপ করতে:
ফায়ারবেস কনসোল থেকে আপনার ফায়ারবেস ওয়েব অ্যাপ কনফিগ অবজেক্টটি কপি করুন।
npm installকমান্ডটি চালানোর আগে টার্মিনাল থেকেFIREBASE_WEBAPP_CONFIGএনভায়রনমেন্ট ভেরিয়েবলটি সেট করুন।
FIREBASE_WEBAPP_CONFIG="{...}" npm install firebase
যখনই আপনি আপনার ফায়ারবেস প্রজেক্ট বা ওয়েব অ্যাপ পরিবর্তন করবেন, এই কমান্ডটি পুনরায় চালান। মধ্যবর্তী ক্যাশগুলিও (যেমন .next/cache ) পরিষ্কার করার প্রয়োজন হতে পারে।
SSR এর জন্য FirebaseServerApp ব্যবহার করুন
আপনার ওয়েব অ্যাপ তৈরির সময় যদি আপনি Firebase JS SDK বা অন্যান্য Firebase ক্লায়েন্ট SDK ব্যবহার করে থাকেন, তাহলে আপনি সম্ভবত FirebaseApp ইন্টারফেস এবং অ্যাপ ইনস্ট্যান্স কনফিগার করার পদ্ধতি সম্পর্কে পরিচিত। সার্ভার সাইডে একই ধরনের কাজ সহজ করার জন্য, Firebase, FirebaseServerApp প্রদান করে।
FirebaseServerApp হলো FirebaseApp এর একটি সংস্করণ, যা সার্ভার সাইড রেন্ডারিং (SSR) পরিবেশে ব্যবহারের জন্য তৈরি। এতে এমন সব টুল রয়েছে যা ক্লায়েন্ট সাইড রেন্ডারিং (CSR) এবং সার্ভার সাইড রেন্ডারিং-এর মধ্যবর্তী পর্যায়েও ফায়ারবেস সেশন চালু রাখতে সাহায্য করে।
FirebaseServerApp ব্যবহার করুন:
- সম্পূর্ণ প্রশাসনিক অধিকার সম্পন্ন Firebase Admin SDK এর বিপরীতে, এটি ব্যবহারকারীর প্রেক্ষাপটে সার্ভার-সাইড কোড কার্যকর করে।
- SSR পরিবেশে App Check -এর ব্যবহার সক্ষম করুন।
- ক্লায়েন্টে তৈরি করা একটি ফায়ারবেস অথেন্টিকেশন সেশন চালিয়ে যান।
এইসব উদ্দেশ্যে FirebaseServerApp ব্যবহারের সম্পূর্ণ বিবরণের জন্য, "Use Firebase in dynamic web apps with SSR" দেখুন।
আপনার ওয়েব অ্যাপে App Check সক্রিয় করুন
আপনি App Hosting এ থাকা আপনার ডাইনামিক ওয়েব অ্যাপের নিরাপত্তা জোরদার করতে App Check ব্যবহার করতে পারেন। "Use Firebase in dynamic web apps with SSR" -এ বর্ণিত কিছু নির্দিষ্ট সার্ভার সাইড কৌশল বাস্তবায়নের মাধ্যমে, আপনি আপনার App Hosting ব্যাকএন্ডগুলোকে অপব্যবহার থেকে রক্ষা করতে পারেন।