কৌণিক সংহত করুন

স্থির বিষয়বস্তু পরিবেশন করুন

আপনি স্ট্যান্ডার্ড ডিপ্লয়মেন্ট কমান্ড ব্যবহার করে স্ট্যাটিক কন্টেন্ট পরিবেশন করতে পারেন:

firebase deploy

ডাইনামিক কন্টেন্ট প্রি-রেন্ডার করুন

অ্যাঙ্গুলারে ডাইনামিক কন্টেন্ট প্রি-রেন্ডার করতে হলে, আপনাকে অ্যাঙ্গুলার এসএসআর (SSR) সেট আপ করতে হবে।

ng add @angular/ssr

আরও তথ্যের জন্য অ্যাঙ্গুলার প্রি-রেন্ডারিং (SSG) গাইডটি দেখুন।

ঐচ্ছিক: একটি সার্ভার মডিউল যোগ করুন

মোতায়েন করুন

যখন আপনি firebase deploy দিয়ে ডিপ্লয় করেন, তখন Firebase আপনার ব্রাউজার বান্ডেল ও সার্ভার বান্ডেল তৈরি করে এবং অ্যাপ্লিকেশনটি প্রি-রেন্ডার করে। এই উপাদানগুলো Hosting এবং Cloud Functions for Firebase ডিপ্লয় করা হয়।

কাস্টম ডিপ্লয়

Firebase CLI ধরে নেয় যে আপনার angular.json এ প্রোডাকশন বিল্ড কনফিগারেশন সহ একটিমাত্র অ্যাপ্লিকেশন সংজ্ঞায়িত করা আছে।

যদি CLI-এর পূর্বশর্তগুলো পরিবর্তন করার প্রয়োজন হয়, তাহলে আপনি FIREBASE_FRAMEWORKS_BUILD_TARGET এনভায়রনমেন্ট ভেরিয়েবলটি ব্যবহার করতে পারেন অথবা AngularFire যোগ করে আপনার angular.json পরিবর্তন করতে পারেন।

{
  "deploy": {
    "builder": "@angular/fire:deploy",
    "options": {
      "version": 2,
      "buildTarget": "OVERRIDE_YOUR_BUILD_TARGET"
    }
  }
}

ঐচ্ছিক: Firebase JS SDK-এর সাথে একীভূত করুন

সার্ভার এবং ক্লায়েন্ট উভয় বান্ডেলে Firebase JS SDK মেথড অন্তর্ভুক্ত করার সময়, প্রোডাক্টটি ব্যবহার করার আগে isSupported() চেক করে রানটাইম ত্রুটি থেকে সুরক্ষিত থাকুন। সব প্রোডাক্ট সব পরিবেশে সমর্থিত নয়।

ঐচ্ছিক: ফায়ারবেস অ্যাডমিন এসডিকে-এর সাথে একীভূত করুন

আপনার ব্রাউজার বিল্ডে অ্যাডমিন বান্ডেল অন্তর্ভুক্ত করা হলে তা কাজ করবে না, তাই সেগুলোকে আপনার সার্ভার মডিউলে সরবরাহ করার এবং একটি ঐচ্ছিক ডিপেন্ডেন্সি হিসেবে ইনজেক্ট করার কথা বিবেচনা করুন:

// your-component.ts
import type { app } from 'firebase-admin';
import { FIREBASE_ADMIN } from '../app.module';

@Component({...})
export class YourComponent {

  constructor(@Optional() @Inject(FIREBASE_ADMIN) admin: app.App) {
    ...
  }
}

// app.server.module.ts
import * as admin from 'firebase-admin';
import { FIREBASE_ADMIN } from './app.module';

@NgModule({
  
  providers: [
    
    { provide: FIREBASE_ADMIN, useFactory: () => admin.apps[0] || admin.initializeApp() }
  ],
})
export class AppServerModule {}

// app.module.ts
import type { app } from 'firebase-admin';

export const FIREBASE_ADMIN = new InjectionToken<app.App>('firebase-admin');

SSR-এর মাধ্যমে সম্পূর্ণ ডাইনামিক কন্টেন্ট পরিবেশন করুন

ঐচ্ছিক: ফায়ারবেস অথেনটিকেশনের সাথে সংযুক্ত করুন

ওয়েব ফ্রেমওয়ার্ক-সচেতন ফায়ারবেস ডেপ্লয়মেন্ট টুলিং কুকি ব্যবহার করে স্বয়ংক্রিয়ভাবে ক্লায়েন্ট এবং সার্ভারের স্টেট সিঙ্ক করে রাখে। এক্সপ্রেস res.locals অবজেক্টটিতে ঐচ্ছিকভাবে একটি অথেনটিকেটেড ফায়ারবেস অ্যাপ ইনস্ট্যান্স ( firebaseApp ) এবং বর্তমানে সাইন ইন করা ব্যবহারকারী ( currentUser ) থাকবে। এটি @nguniversal/express-engine/tokens থেকে এক্সপোর্ট করা REQUEST টোকেনের মাধ্যমে আপনার মডিউলে ইনজেক্ট করা যেতে পারে।