Firebase App Hosting هو الخيار الأمثل لتطبيقات الويب الديناميكية التي تم إنشاؤها باستخدام Firebase حزمة تطوير البرامج (SDK) JavaScript وFirebase Admin SDK لنظام التشغيل Node.js. في تطبيقات الويب التي تتضمّن كل الميزات، تؤدي حِزم تطوير البرامج (Firebase SDK) مثل Authentication وCloud Firestore وApp Check أدوارًا مهمة. يوضّح هذا الدليل بعض الاستراتيجيات الرئيسية للمساعدة في تحسين حِزم SDK الخاصة بخدمة Firebase والبدء في إنشاء Firebase في تطبيق الويب على Firebase App Hosting.
إعداد حِزم تطوير البرامج (SDK) لFirebase Admin SDK وWeb تلقائيًا
توفّر بيئات Google، مثل Firebase App Hosting، عملية بدء للتطبيق مبسّطة من خلال طلب إنشاء لا يحتوي على أيّ مَعلمات في وقت الإنشاء ووقت التشغيل. هذه ميزة في كلّ من Firebase Admin SDK لأجل Node.js، وهي حزمة تطوير برامج (SDK) من جهة الخادم تمنح استخدامًا واسعًا لوظائف Firebase ويمكن أن تكون مفيدة جدًا في تطبيق الويب، وFirebase JavaScript SDK.
باستخدام initializeApp()
، يمكنك السماح لـ Firebase App Hosting
بملء إعدادات تطبيق الويب تلقائيًا نيابةً عنك مع الاحتفاظ بخيار التحكّم بدقة في قيم معيّنة إذا كنت تريد إلغاء القيم الافتراضية.
الإعداد بدون وسيطات
لإعداد حزمة SDK الخاصة بخدمة Firebase JavaScript أو Firebase Admin SDK باستخدام قيم الإعدادات التلقائية، استخدِم initializeApp()
بدون تقديم أيّ وسيطات:
Admin SDK
import { initializeApp } from 'firebase-admin/app';
const app = initializeApp();
JavaScript SDK
import { initializeApp } from 'firebase/app';
const app = initializeApp();
تعمل استراتيجية إعداد Admin SDK هذه في App Hosting بالإضافة إلى App Hosting ومثيلات خادم Google الأخرى، بما في ذلك Cloud Run وApp Engine وCloud Functions. بالنسبة إلى حزمة تطوير البرامج (SDK) لرمز JavaScript، تعمل هذه الاستراتيجية على App Hosting.
إلغاء القيم المعبأة تلقائيًا
يمكنك إلغاء الإعدادات التلقائية التي يتم إدخالها تلقائيًا. يُرجى العلم أنّ هذه الخيارات تختلف بين حزمة تطوير البرامج (SDK) Admin SDK وحزمة تطوير البرامج (SDK) JavaScript.
إلغاء Admin SDK
لتحديد خيارات إعداد مخصّصة اختياريًا لخدمات مثل
Realtime Database أو Cloud Storage أو Cloud Functions، استخدِم متغيّر البيئة FIREBASE_CONFIG
. إذا كان محتوى المتغيّر FIREBASE_CONFIG
يبدأ
بحرف {
، سيتم تحليله ككائن JSON. بخلاف ذلك، يفترض حِزم تطوير البرامج (SDK)
أنّ السلسلة هي مسار ملف JSON يحتوي على الخيارات.
# apphosting.yaml
env:
- variable: FIREBASE_CONFIG
value: '{"credential: applicationDefault()","databaseURL":"https://project-id-default-rtdb.firebaseio.com"}'
إلغاء حزمة تطوير البرامج (SDK) لـ JavaScript
لإلغاء قيم FIREBASE_WEBAPP_CONFIG
التلقائية التي App Hosting
تُدخلها لبدء حزمة تطوير البرامج (SDK) لـ JavaScript، يمكنك تحديد القيم في
apphosting.yaml
:
# apphosting.yaml
env:
- variable: FIREBASE_WEBAPP_CONFIG
value: '{"apiKey":"myApiKey","appId":"app:123","authDomain":"project-id.firebaseapp.com","databaseURL":"https://project-id-default-rtdb.firebaseio.com","messagingSenderId":"0123456789","projectId":"project-id","storageBucket":"project-id.firebasestorage.app"}'
استخدام الإعداد التلقائي في بيئات أخرى
يتم إعداد الإعداد التلقائي باستخدام npm postinstall script عند
تثبيت حزمة تطوير البرامج (SDK) لبرنامج Firebase JavaScript. يبحث النص البرمجي لعمليات ما بعد التثبيت عن المتغيّر البيئي FIREBASE_WEBAPP_CONFIG
الذي يتم ضبطه تلقائيًا في بيئة App Hosting Cloud Build.
إذا كنت بصدد تثبيت حزمة تطوير البرامج (SDK) لبرنامج JavaScript خارج Cloud Build، على سبيل المثال على الجهاز ل استخدامها مع مجموعة محاكيات Firebase، عليك ضبط متغيّر البيئة هذا بنفسك عند تثبيت حزمة تطوير البرامج (SDK) لبرنامج JavaScript في Firebase.
لإعداد البيئة يدويًا عند التثبيت:
انسخ عنصر إعدادات تطبيق الويب على Firebase من وحدة تحكّم Firebase.
من إحدى الوحدات الطرفية، اضبط متغيّر البيئة
FIREBASE_WEBAPP_CONFIG
قبل تشغيل الأمرnpm install
.
FIREBASE_WEBAPP_CONFIG="{...}" npm install firebase
في أي وقت تُجري فيه تغييرًا على مشروعك أو تطبيقك على الويب في Firebase، أعِد تنفيذ هذا الأمر.
استخدام FirebaseServerApp
لميزة SSR
إذا كنت قد استخدمت حزمة تطوير البرامج (SDK) لـ Firebase JS أو حِزم تطوير برامج أخرى لعملاء Firebase في تطوير تطبيقك على الويب، من المرجّح أن تكون على دراية FirebaseApp
بالواجهة وكيفية استخدامها لضبط نُسخ التطبيق. لتسهيل تنفيذ عمليات مماثلة
من جهة الخادم، توفّر Firebase FirebaseServerApp
.
FirebaseServerApp
هو أحد أنواع FirebaseApp
المخصّص للاستخدام في بيئات FirebaseApp
. ويتضمّن أدوات لمواصلة جلسات Firebase
التي تمتد على نطاق العرض من جهة العميل (CSR) / العرض من جهة الخادم.
استخدِم FirebaseServerApp
لإجراء ما يلي:
- تنفيذ الرمز البرمجي من جهة الخادم ضمن سياق user، على عكس Firebase Admin SDK الذي يمتلك حقوقًا إدارية كاملة
- فعِّل استخدام App Check في بيئات إعادة التحميل من خادم ثابت.
- مواصلة جلسة Firebase Auth التي تم إنشاؤها في العميل
للاطّلاع على التفاصيل الكاملة حول استخدام FirebaseServerApp
لهذه الأغراض، يُرجى الاطّلاع على مقالة استخدام
Firebase في تطبيقات الويب الديناميكية باستخدام ميزة SSR.
تفعيل App Check في تطبيق الويب
يمكنك استخدام App Check لتعزيز أمان تطبيقك الديناميكي على الويب على App Hosting. من خلال تنفيذ بعض الاستراتيجيات المحدّدة من جهة الخادم описанة في مقالة استخدام Firebase في تطبيقات الويب الديناميكية باستخدام SSR، يمكنك حماية App Hosting الخلفيات من إساءة الاستخدام.