تحجز Firebase Hosting عناوين URL في موقعك الإلكتروني تبدأ بـ /__
. يسهّل مساحة الاسم المحجوزة هذه استخدام منتجات Firebase الأخرى مع Firebase Hosting.
تتوفّر عناوين URL المحجوزة هذه عند النشر على Firebase
(firebase deploy
) أو عند تشغيل تطبيقك على خادم محلي
(firebase serve
).
إضافة نصوص برمجية لعناوين URL المحجوزة
بما أنّ Firebase Hosting يتم عرضه عبر HTTP/2 عند نشره، يمكنك تحسين الأداء من خلال تحميل الملفات من المصدر نفسه. تعرض Firebase Hosting الإصدار 8 من حزمة تطوير البرامج (SDK) JavaScript Firebase من عناوين URL خاصة منسَّقة على النحو التالي:
/__/firebase/JS_SDK_VERSION/FIREBASE_SDK_NAME.js
ننصحك بشدة بتحميل المكتبات التي تستخدمها في تطبيقك فقط. على سبيل المثال، لتضمين Authentication وCloud Firestore فقط، أضِف النصوص البرمجية التالية إلى أسفل علامة <body>
، ولكن قبل استخدام أي من خدمات Firebase:
<body>
<!-- Insert these scripts at the bottom of the HTML, but before you use any Firebase services -->
<!-- Firebase App (the core Firebase SDK) is always required and must be listed first -->
<script src="/__/firebase/8.10.1/firebase-app.js"></script>
<!-- Add Firebase products that you want to use -->
<script src="/__/firebase/8.10.1/firebase-auth.js"></script>
<script src="/__/firebase/8.10.1/firebase-firestore.js"></script>
</body>
الإعداد التلقائي لحزمة تطوير البرامج (SDK)
تسهّل عملية الإعداد التلقائي لحزمة SDK إدارة بيئات متعددة (مثل التطوير والتجهيز والإنتاج) من قاعدة رموز برمجية واحدة. من خلال الاعتماد على عنوان URL المحجوز Hosting، يمكنك نشر الرمز نفسه في مشاريع Firebase متعددة.
بالإضافة إلى استضافة حِزم SDK نفسها، يوفّر مساحة الاسم المحجوزة أيضًا جميع الإعدادات اللازمة لتهيئة حزمة SDK لمشروع Firebase المرتبط بالموقع الإلكتروني Hosting. يتم توفير إعدادات Firebase وعملية تهيئة حزمة تطوير البرامج (SDK) من خلال نص برمجي يمكنك تضمينه مباشرةً:
<!-- Load the Firebase SDKs before loading this file -->
<script src="/__/firebase/init.js"></script>
عند نشر تطبيقك على Firebase أو اختباره محليًا، يعمل هذا النص البرمجي تلقائيًا على ضبط حزمة تطوير البرامج (SDK) Firebase JavaScript لمشروع Firebase النشط ويهيئها.
إذا كنت تفضّل التحكّم في عملية التهيئة بنفسك، تتوفّر قيم إعدادات Firebase أيضًا بتنسيق JSON:
fetch('/__/firebase/init.json').then(async response => {
firebase.initializeApp(await response.json());
});
حِزم Firebase JS SDK المتاحة (من عناوين URL المحجوزة Hosting)
منتج Firebase | مرجع المكتبة (عنوان URL محجوز) |
---|---|
حزمة Firebase الأساسية (مطلوبة) |
<script src="/__/firebase/8.10.1/firebase-app.js"></script> |
Analytics | <script src="/__/firebase/8.10.1/firebase-analytics.js"></script> |
App Check | <script src="/__/firebase/8.10.1/firebase-app-check.js"></script> |
Authentication | <script src="/__/firebase/8.10.1/firebase-auth.js"></script> |
Cloud Firestore | <script src="/__/firebase/8.10.1/firebase-firestore.js"></script> |
Cloud Functions for Firebase Client SDK | <script src="/__/firebase/8.10.1/firebase-functions.js"></script> |
Firebase من عمليات التثبيت | <script src="/__/firebase/8.10.1/firebase-installations.js"></script> |
Cloud Messaging | <script src="/__/firebase/8.10.1/firebase-messaging.js"></script> للحصول على أفضل تجربة باستخدام Cloud Messaging، أضِف أيضًا حزمة تطوير البرامج (SDK) لمنصة Firebase الخاصة بـ Analytics. |
Cloud Storage | <script src="/__/firebase/8.10.1/firebase-storage.js"></script> |
Performance Monitoring
(إصدار تجريبي) |
<script src="/__/firebase/8.10.1/firebase-performance.js"></script> |
Realtime Database | <script src="/__/firebase/8.10.1/firebase-database.js"></script> |
Remote Config
(إصدار تجريبي) |
<script src="/__/firebase/8.10.1/firebase-remote-config.js"></script> للحصول على أفضل تجربة باستخدام Remote Config، أضِف أيضًا حزمة تطوير البرامج (SDK) لمنصة Firebase الخاصة بـ Analytics. |
Firebase JavaScript حزمة SDK (حزمة SDK بأكملها) |
<script src="/__/firebase/8.10.1/firebase.js"></script> |
أدوات مساعدة في المصادقة
تستخدم Firebase Authentication مساحة الاسم المحجوزة لتوفير JavaScript وHTML خاصَّين لإكمال عملية المصادقة مع مقدّمي الخدمات من خلال OAuth. ويسمح ذلك لكل مشروع في Firebase بالحصول على نطاق فرعي فريد في Firebase، ما يزيد من أمان Firebase Authentication.
بالإضافة إلى ذلك، يتيح لك ذلك استخدام نطاقك المخصّص الخاص لخيار authDomain
في firebase.initializeApp()
. إذا ضبطت نطاقًا مخصّصًا لـ Firebase Hosting، يمكنك أيضًا تحديد هذا النطاق المخصّص (بدلاً من النطاق الفرعي web.app
أو firebaseapp.com
) عند بدء حِزم تطوير البرامج (SDK) من Firebase. لمزيد من التفاصيل حول استخدام نطاق مخصّص، اطّلِع على أفضل الممارسات لاستخدام signInWithRedirect.
عناوين URL المحجوزة وملفات تشغيل الخدمات
إذا كنت تنشئ "تطبيق ويب تقدّمي" (PWA)، يمكنك إنشاء مشغّل خدمات يتضمّن "بديل التنقّل" ويعرض عنوان URL محدّدًا تلقائيًا إذا لم يكن متطابقًا مع قائمة بالعناصر المخزّنة مؤقتًا مسبقًا.
إذا كنت تستخدم مكتبة sw-precache، يمكنك إضافة إعداد قائمة بيضاء للرجوع إلى الصفحة الاحتياطية للتنقّل يستبعد مساحة الاسم المحجوزة:
{
navigateFallbackWhitelist: [/^(?!\/__).*/]
}
بشكل عام، تذكَّر فقط أنّ مساحة الاسم التي تتضمّن شرطتَين سفليتَين محجوزة لاستخدام Firebase، ويجب عدم اعتراض هذه الطلبات في عامل الخدمة.