تُعدّ Firebase App Hosting مناسبة بشكل طبيعي لتطبيقات الويب الديناميكية التي تم إنشاؤها باستخدام حزمة تطوير البرامج (SDK) لـ Firebase JavaScript وFirebase Admin SDK لـ Node.js. في تطبيق ويب كامل الميزات، تؤدي حِزم تطوير البرامج (SDK) في Firebase، مثل Authentication وCloud Firestore وApp Check، أدوارًا مهمة. يصف هذا الدليل بعض الاستراتيجيات الرئيسية للمساعدة في تحسين حِزم تطوير البرامج (SDK) لـ "Firebase" والبدء في إنشاء "Firebase" في تطبيق الويب على "Firebase App Hosting".
إعداد حزم تطوير البرامج (SDK) لـ Firebase Admin SDK والويب تلقائيًا
توفّر بيئات Google، مثل Firebase App Hosting، إعدادًا مبسطًا للتطبيق من خلال استدعاء دالة إنشائية بدون وسيطات في وقت الإنشاء ووقت التشغيل. هذه ميزة في كل من Firebase Admin SDK لـ Node.js، وهي حزمة تطوير برامج (SDK) من جهة الخادم تتيح استخدام مجموعة كبيرة من وظائف Firebase ويمكن أن تكون مفيدة جدًا في تطبيق الويب، وحزمة تطوير البرامج (SDK) لـ JavaScript في Firebase.
باستخدام initializeApp()، يمكنك السماح لـ Firebase App Hosting بملء إعدادات تطبيق الويب تلقائيًا مع الاحتفاظ بخيار التحكّم الدقيق في قيم معيّنة إذا أردت إلغاء القيم التلقائية.
التهيئة بدون وسيطات
لتهيئة حزمة تطوير البرامج (SDK) لـ Firebase Admin SDK أو Firebase JavaScript باستخدام قيم الإعدادات التلقائية، استخدِم initializeApp() بدون تقديم أي وسيطات.
Admin SDK
import { initializeApp } from 'firebase-admin/app';
const app = initializeApp();
بالنسبة إلى Admin SDK، تعمل استراتيجية الإعداد هذه في App Hosting بالإضافة إلى بيئات خوادم Google الأخرى، بما في ذلك دوال Cloud Run وApp Engine وCloud Run.
JavaScript SDK
import { initializeApp } from 'firebase/app';
const app = initializeApp();
بالنسبة إلى حزمة JavaScript SDK، تعمل استراتيجية الإعداد هذه في App Hosting.
تجاهُل القيم التي تم ملؤها تلقائيًا
يمكنك إلغاء الإعدادات التلقائية التي يتم إدخالها تلقائيًا. يُرجى العِلم أنّ هذه الخيارات تختلف بين Admin SDK وJavaScript SDK.
تجاوز واحد (Admin SDK)
لتحديد خيارات الإعداد المخصّصة للخدمات، مثل قاعدة بيانات الوقت الفعلي أو Cloud Storage أو Cloud Functions، استخدِم متغيّر البيئة FIREBASE_CONFIG. إذا كان محتوى المتغيّر FIREBASE_CONFIG يبدأ بحرف {، سيتم تحليله كعنصر JSON. بخلاف ذلك، تفترض حزمة تطوير البرامج (SDK) أنّ السلسلة هي مسار ملف JSON يحتوي على الخيارات.
# apphosting.yaml
env:
- variable: FIREBASE_CONFIG
value: '{"databaseURL":"https://project-id-default-rtdb.firebaseio.com","projectId":"my-project-id"}'
تجاوز JavaScript SDK
لتجاوز قيم 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"}'
استخدام الإعداد التلقائي في بيئات أخرى
يتم إعداد عملية الإعداد التلقائي باستخدام نص برمجي postinstall
npm عند
تثبيت حزمة تطوير البرامج (SDK) لـ Firebase JavaScript. يبحث النص البرمجي postinstall عن متغيّر البيئة FIREBASE_WEBAPP_CONFIG الذي يتم ضبطه تلقائيًا في بيئة الإصدار App Hosting في Cloud Build.
إذا كنت بصدد تثبيت حزمة JS SDK خارج Cloud Build، عليك ضبط متغيّر البيئة هذا بنفسك عند تثبيت حزمة Firebase JavaScript SDK.
لإعداد البيئة يدويًا عند التثبيت:
انسخ عنصر ضبط تطبيق الويب في Firebase من وحدة تحكّم "Firebase".
من إحدى الوحدات الطرفية، اضبط متغيّر البيئة
FIREBASE_WEBAPP_CONFIGقبل تشغيل الأمرnpm install.
FIREBASE_WEBAPP_CONFIG="{...}" npm install firebase
في أي وقت تغيّر فيه مشروع Firebase أو تطبيق الويب، أعِد تشغيل هذا الأمر. قد تحتاج أيضًا إلى محو ذاكرات التخزين المؤقت الوسيطة (مثل .next/cache).
استخدام FirebaseServerApp للعرض من جهة الخادم
إذا كنت قد استخدمت حزمة تطوير البرامج (SDK) لمنصة Firebase JS أو حزم تطوير البرامج (SDK) الأخرى لعملاء Firebase في
تطوير تطبيق الويب، من المحتمل أن تكون على دراية بواجهة FirebaseApp
وكيفية استخدامها لضبط نُسخ التطبيق. لتسهيل العمليات المماثلة على جهة الخادم، توفّر Firebase FirebaseServerApp.
FirebaseServerApp هو خيار من FirebaseApp للاستخدام في بيئات العرض من جهة الخادم (SSR). وتتضمّن أدوات لمواصلة جلسات Firebase
التي تمتد عبر العرض من جهة العميل (CSR) / العرض من جهة الخادم.
استخدِم FirebaseServerApp لتنفيذ ما يلي:
- تنفيذ الرمز البرمجي من جهة الخادم في سياق المستخدم، على عكس Firebase Admin SDK الذي يمتلك حقوق إدارة كاملة.
- تفعيل استخدام App Check في بيئات العرض من جهة الخادم (SSR)
- مواصلة جلسة Firebase Auth التي تم إنشاؤها في العميل
للحصول على تفاصيل كاملة حول استخدام FirebaseServerApp لهذه الأغراض، يُرجى الاطّلاع على استخدام Firebase في تطبيقات الويب الديناميكية مع العرض من جهة الخادم.
تفعيل "App Check" في تطبيق الويب
يمكنك استخدام App Check لتعزيز أمان تطبيق الويب الديناميكي على App Hosting. من خلال تنفيذ بعض الاستراتيجيات المحدّدة من جهة الخادم الموضّحة في مقالة استخدام Firebase في تطبيقات الويب الديناميكية مع العرض من جهة الخادم، يمكنك حماية الخلفيات البرمجية في App Hosting من إساءة الاستخدام.