عرض المحتوى الثابت
يمكنك عرض المحتوى الثابت باستخدام أمر النشر العادي:
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).