تحجز 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، ما يعزّز مستوى أمان Firebase Authentication.
بالإضافة إلى ذلك، يتيح لك ذلك استخدام نطاقك المخصّص authDomain
لخيار firebase.initializeApp()
. إذا ضبطت نطاقًا مخصّصًا لـ Firebase Hosting، يمكنك أيضًا تحديد هذا النطاق المخصّص (بدلاً من النطاق الفرعي web.app
أو firebaseapp.com
) عند بدء حِزم تطوير البرامج (SDK) لـ Firebase. يمكنك الاطّلاع على
أفضل الممارسات لاستخدام SignInWithRedirect
لمزيد من التفاصيل حول استخدام نطاق خاص.
عناوين URL المحجوزة وملفات تشغيل الخدمات
إذا كنت تنشئ تطبيق ويب تقدّميًا (PWA)، يمكنك إنشاء مشغّل خدمات يتضمّن "إجراء احتياطي للتنقل" ويعرض عنوان URL محددًا تلقائيًا إذا لم يتطابق مع قائمة العناصر المخزَّنة مؤقتًا.
إذا كنت تستخدم مكتبة sw-precache ، يمكنك إضافة إعداد قائمة بيضاء للرجوع إليها في حال تعذّر التنقّل، باستثناء مساحة الاسم المحجوزة:
{
navigateFallbackWhitelist: [/^(?!\/__).*/]
}
بشكل عام، تذكَّر أنّ مساحة الاسم التي تتضمّن شرطة سفلية مزدوجة محجوزة لاستخدام Firebase وأنّه يجب عدم اعتراض هذه الطلبات في معالج الخدمة.