Firebase App Hosting هي خيار مناسب للتطبيقات الديناميكية على الويب التي تم إنشاؤها باستخدام Firebase JavaScript SDK وFirebase Admin SDK لـ Node.js. في تطبيق ويب كامل الميزات، تؤدي حِزم تطوير البرامج (SDK) Firebase، مثل Authentication وCloud Firestore وApp Check، أدوارًا مهمة. يوضّح هذا الدليل بعض الاستراتيجيات الأساسية التي تساعد في تحسين حِزم تطوير البرامج (SDK) الخاصة بـ Firebase والبدء في إنشاء Firebase في تطبيق الويب على Firebase App Hosting.
إعداد Firebase Admin SDK وحِزم تطوير البرامج (SDK) على الويب تلقائيًا
توفّر بيئات 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 وفي بيئات خوادم Google الأخرى، بما في ذلك Cloud Run وApp Engine وCloud Functions. بالنسبة إلى حزمة تطوير البرامج (SDK) المستندة إلى JavaScript، تعمل هذه الاستراتيجية على App Hosting.
تجاوز القيم التي تتم تعبئتها تلقائيًا
يمكنك تجاهل الإعداد التلقائي الذي يتم إدراجه تلقائيًا. يُرجى العِلم أنّ هذه الخيارات تختلف بين 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"}'
تجاوز 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"}'
استخدام الإعداد التلقائي في بيئات أخرى
يتم إعداد عملية التهيئة التلقائية باستخدام نص برمجي
npm postinstall عند تثبيت حزمة تطوير البرامج (SDK) الخاصة بـ JavaScript في Firebase. يبحث النص البرمجي لما بعد التثبيت عن
متغيّر البيئة FIREBASE_WEBAPP_CONFIG
، الذي يتم ضبطه تلقائيًا
في بيئة App Hosting Cloud Build.
إذا كنت تثبّت حزمة تطوير البرامج (SDK) في JavaScript خارج Cloud Build، عليك ضبط متغيّر البيئة هذا بنفسك عند تثبيت حزمة تطوير البرامج (SDK) في JavaScript من Firebase.
لإعداد البيئة يدويًا أثناء التثبيت، اتّبِع الخطوات التالية:
انسخ عنصر إعداد تطبيق الويب على Firebase من وحدة تحكّم Firebase.
من إحدى الوحدات الطرفية، اضبط متغيّر البيئة
FIREBASE_WEBAPP_CONFIG
قبل تشغيل الأمرnpm install
.
FIREBASE_WEBAPP_CONFIG="{...}" npm install firebase
في كل مرة تغيّر فيها مشروعك على Firebase أو تطبيقك على الويب، عليك إعادة تنفيذ هذا الأمر.
استخدام FirebaseServerApp
لعرض المحتوى من جهة الخادم
إذا كنت قد عملت باستخدام حزمة تطوير البرامج (SDK) بلغة JavaScript لمنصة Firebase أو حِزم تطوير البرامج (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