يحتفظ Firebase Hosting بعناوين URL في موقعك الإلكتروني التي تبدأ بـ /__
. تسهِّل هذه المساحة المُسماة
المخصّصة استخدام منتجات Firebase الأخرى مع
Firebase Hosting.
تتوفّر عناوين URL المحجوزة هذه عند نشر تطبيقك على Firebase
(firebase deploy
) أو عند تشغيله على خادم محلي
(firebase serve
).
إضافة نصوص برمجية لعناوين URL المحجوزة
بما أنّ Firebase Hosting يتم عرضها عبر HTTP/2 عند نشرها، يمكنك تحسين الأداء عن طريق تحميل الملفات من المصدر نفسه. يعرض Firebase Hosting الإصدار 8 من حزمة تطوير البرامج (SDK) Firebase JavaScript من خلال عناوين 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 النشط وإعداد حزمة تطوير البرامج (SDK).
إذا كنت تفضّل التحكّم في عملية الإعداد بنفسك، تتوفّر أيضًا قيم إعدادات Firebase بتنسيق JSON:
fetch('/__/firebase/init.json').then(async response => {
firebase.initializeApp(await response.json());
});
حِزم تطوير البرامج (SDK) لـ Firebase JS المتاحة (من Hosting عناوين URL محجوزة)
لا تتوفّر عناوين URLمنتج 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 Authentication الفرعية على Firebase، ما يزيد من أمان Firebase Authentication.
بالإضافة إلى ذلك، يتيح لك ذلك استخدام نطاقك المخصّص authDomain
لخيار firebase.initializeApp()
. في حال ضبط نطاق خاص لـ Firebase Hosting، يمكنك أيضًا تحديد النطاق الخاص (بدلاً من النطاق الفرعي web.app
أو firebaseapp.com
) عند إعداد حِزم تطوير البرامج (SDK) لمنصة Firebase. اطّلِع على أفضل الممارسات لاستخدام signInWithRedirect لمزيد من التفاصيل حول استخدام نطاق مخصّص.
عناوين URL المحجوزة وملفات تشغيل الخدمات
إذا كنت بصدد إنشاء تطبيق ويب تقدّمي (PWA)، يمكنك إنشاء مشغّل خدمات يحتوي على "عنصر احتياطي للتنقّل" ويعرض عنوان URL محدّدًا تلقائيًا إذا لم يتطابق مع قائمة بالعناصر التي تم تخزينها مؤقتًا.
إذا كنت تستخدم مكتبة sw-precache ، يمكنك إضافة إعداد قائمة بيضاء للرجوع إليها في حال تعذّر التنقّل، باستثناء مساحة الاسم المحجوزة:
{
navigateFallbackWhitelist: [/^(?!\/__).*/]
}
بشكل عام، تذكَّر أنّ مساحة الاسم التي تتضمّن شرطة سفلية مزدوجة محجوزة لاستخدام Firebase وأنّه يجب عدم اعتراض هذه الطلبات في معالج الخدمة.