عرض المحتوى الثابت
يمكنك عرض محتوى ثابت باستخدام أمر النشر العادي:
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
عند تضمين طرق حزمة تطوير البرامج (SDK) في JavaScript من Firebase في حِزم الخادم والعميل، احرص على تجنُّب أخطاء وقت التشغيل من خلال التحقّق من 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).