دمج حِزم تطوير البرامج (SDK) لمنصّة Firebase مع تطبيقك على الويب

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 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();

بالنسبة إلى حزمة تطوير البرامج (SDK) في JavaScript، تعمل استراتيجية الإعداد هذه في App Hosting.

تجاهُل القيم التي يتم ملؤها تلقائيًا

يمكنك تجاهل الإعدادات التلقائية التي يتم إدخالها تلقائيًا. يُرجى العِلم أنّ هذه الخيارات تختلف بين Admin SDK وحزمة تطوير البرامج (SDK) المستندة إلى JavaScript.

Admin SDK عملية إلغاء

لتحديد خيارات تهيئة مخصّصة بشكل اختياري للخدمات، مثل قاعدة بيانات الوقت الفعلي أو 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"}'

استخدام عملية الإعداد التلقائي في بيئات أخرى

يتم إعداد عملية التهيئة التلقائية باستخدام نص برمجي postinstall npm عند تثبيت حزمة تطوير البرامج (SDK) الخاصة بـ JavaScript في Firebase. يبحث النص البرمجي postinstall عن متغير البيئة FIREBASE_WEBAPP_CONFIG، الذي يتم ضبطه تلقائيًا في بيئة إصدار App Hosting Cloud.

إذا كنت تثبّت حزمة تطوير البرامج (SDK) في JavaScript خارج Cloud Build، عليك ضبط متغيّر البيئة هذا بنفسك عند تثبيت Firebase JavaScript SDK.

لإعداد البيئة يدويًا أثناء التثبيت، اتّبِع الخطوات التالية:

  1. انسخ عنصر إعداد تطبيق الويب على Firebase من وحدة تحكّم Firebase.

  2. من إحدى الوحدات الطرفية، اضبط متغيّر البيئة 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 من إساءة الاستخدام.