Firebase App Hosting هي خيار مناسب للتطبيقات الديناميكية على الويب التي تم إنشاؤها باستخدام حزمة تطوير البرامج Firebase JavaScript و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"}'
استخدام الإعداد التلقائي في بيئات أخرى
يتم إعداد عملية التهيئة التلقائية باستخدام نص برمجي postinstall
npm عند تثبيت حزمة تطوير البرامج (SDK) الخاصة بلغة JavaScript من Firebase. يبحث النص البرمجي postinstall عن
متغير البيئة 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 أو تطبيقك على الويب، عليك إعادة تنفيذ هذا الأمر. قد تحتاج أيضًا إلى محو ذاكرات التخزين المؤقت الوسيطة (مثل .next/cache).
استخدام 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