تحجز 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 و initialization لـ 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 (من عناوين URL المحجوزة Hosting)
لا تتوفّر عناوين URLمنتج Firebase | مرجع المكتبة (عنوان URL محجوز) |
---|---|
Firebase core (مطلوب) |
<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 وأنّه يجب عدم اعتراض هذه الطلبات في worker الخدمة.