دمج Angular

عرض المحتوى الثابت

يمكنك عرض المحتوى الثابت باستخدام أمر النشر العادي:

firebase deploy

العرض المُسبَق للمحتوى الديناميكي

لعرض المحتوى الديناميكي مسبقًا في Angular، عليك إعداد Angular SSR.

ng add @angular/ssr

اطّلِع على دليل العرض المسبق في Angular (إنشاء المواقع الإلكترونية الثابتة) للحصول على مزيد من المعلومات.

اختياري: إضافة وحدة خادم

نشر

عند النشر باستخدام firebase deploy، ينشئ Firebase حزمة المتصفّح وحزمة الخادم، ويعرض التطبيق مسبقًا. يتم نشر هذه العناصر على Hosting وCloud Functions for Firebase.

نشر مخصّص

يفترض Firebase CLI أنّ لديك تطبيقًا واحدًا محدّدًا في angular.json مع إعدادات إصدار الإنتاج.

إذا كنت بحاجة إلى تخصيص الافتراضات في واجهة سطر الأوامر، يمكنك استخدام متغير البيئة FIREBASE_FRAMEWORKS_BUILD_TARGET أو إضافة AngularFire وتعديل angular.json:

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

اختياري: الدمج مع حزمة تطوير البرامج (SDK) لمنصة Firebase بلغة JavaScript

عند تضمين طرق Firebase JS SDK في حِزم الخادم والعميل، يجب الحماية من أخطاء وقت التشغيل من خلال التحقّق من isSupported() قبل استخدام المنتج. لا تتوافق بعض المنتجات مع بعض البيئات.

اختياري: الدمج مع حزمة تطوير البرامج (SDK) الإدارية في Firebase

لن تنجح حِزم المشرفين إذا تم تضمينها في إصدار المتصفّح، لذا ننصحك بتوفيرها في وحدة الخادم وإدراجها كعنصر اختياري:

// 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');

عرض محتوى ديناميكي بالكامل باستخدام العرض من جهة الخادم

اختياري: الدمج مع خدمة "مصادقة Firebase"

تحافظ أدوات النشر في Firebase المتوافقة مع إطارات عمل الويب تلقائيًا على مزامنة حالة العميل والخادم باستخدام ملفات تعريف الارتباط. يمكن أن يحتوي عنصر Express res.locals اختياريًا على مثيل مصادق لتطبيق Firebase (firebaseApp) والمستخدم الذي سجّل الدخول حاليًا (currentUser). ويمكن إدخال هذا العنصر في الوحدة النمطية من خلال رمز REQUEST المميّز (الذي تم تصديره من ‎ @nguniversal/express-engine/tokens).