عرض المحتوى الثابت
يمكنك عرض المحتوى الثابت باستخدام أمر النشر العادي:
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"
}
}
}
اختياري: التكامل مع Firebase JS SDK
عند تضمين طرق Firebase JS SDK في كلّ من حزمتَي الخادم والعميل، احرص على منع أخطاء وقت التشغيل من خلال التحقّق من isSupported() قبل استخدام المنتج.
لا تتوافق بعض المنتجات مع بعض البيئات المدعومة في جميع البيئات.
اختياري: التكامل مع Firebase Admin SDK
ستفشل حِزم المشرف إذا تم تضمينها في إصدار المتصفّح، لذا ننصحك بتوفيرها في وحدة الخادم وإضافتها كاعتماد اختياري:
// 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 المتوافقة مع أُطر الويب تلقائيًا على حالة العميل والخادم متزامنة باستخدام ملفات تعريف الارتباط. سيحتوي عنصر res.locals في Express اختياريًا على مثيل معتمَد من تطبيق Firebase (firebaseApp) والمستخدم الذي سجّل الدخول حاليًا (currentUser). ويمكن إضافة ذلك إلى وحدتك من خلال رمز REQUEST (الذي تم تصديره من @nguniversal/express-engine/tokens).