يحتفظ Firebase Hosting بعناوين URL في موقعك تبدأ بـ /__
. تعمل مساحة الاسم المحجوزة هذه على تسهيل استخدام منتجات Firebase الأخرى مع Firebase Hosting.
تتوفر عناوين URL المحجوزة هذه عند النشر في Firebase ( firebase deploy
) أو عند تشغيل تطبيقك على خادم محلي ( firebase serve
).
أضف البرامج النصية لعناوين URL المحجوزة
نظرًا لأن استضافة Firebase يتم تقديمها عبر HTTP / 2 عند النشر ، يمكنك تعزيز الأداء عن طريق تحميل الملفات من الأصل نفسه. تقدم استضافة Firebase الإصدار 8 من Firebase JavaScript SDK من عناوين URL خاصة منسقة على النحو التالي:
/__/firebase/JS_SDK_VERSION/FIREBASE_SDK_NAME.js
نوصي بشدة بتحميل المكتبات التي تستخدمها في تطبيقك فقط. على سبيل المثال ، لتضمين المصادقة و 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 للاستضافة المحجوز ، يمكنك نشر نفس الرمز للعديد من مشاريع Firebase.
بالإضافة إلى استضافة SDKs نفسها ، توفر مساحة الاسم المحجوزة أيضًا كل التكوينات اللازمة لتهيئة SDK لمشروع Firebase المرتبط بموقع الاستضافة. يتم توفير تهيئة Firebase وتهيئة SDK بواسطة نص برمجي يمكنك تضمينه مباشرةً:
<!-- Load the Firebase SDKs before loading this file -->
<script src="/__/firebase/init.js"></script>
عند النشر إلى Firebase أو اختبار تطبيقك محليًا ، يقوم هذا النص البرمجي تلقائيًا بتهيئة Firebase JavaScript SDK لمشروع Firebase النشط وتهيئة SDK.
إذا كنت تفضل التحكم في التهيئة بنفسك ، فإن قيم تهيئة Firebase متاحة أيضًا في شكل JSON:
fetch('/__/firebase/init.json').then(async response => {
firebase.initializeApp(await response.json());
});
مجموعات Firebase JS SDK المتاحة (من عناوين URL للاستضافة المحجوزة)
منتج Firebase | مرجع المكتبة (عنوان URL المحجوز) |
---|---|
نواة Firebase (مطلوب) | <script src="/__/firebase/8.10.1/firebase-app.js"></script> |
تحليلات | <script src="/__/firebase/8.10.1/firebase-analytics.js"></script> |
التحقق من التطبيق | <script src="/__/firebase/8.10.1/firebase-app-check.js"></script> |
المصادقة | <script src="/__/firebase/8.10.1/firebase-auth.js"></script> |
سحابة Firestore | <script src="/__/firebase/8.10.1/firebase-firestore.js"></script> |
وظائف السحابة لـ Firebase Client SDK | <script src="/__/firebase/8.10.1/firebase-functions.js"></script> |
منشآت Firebase | <script src="/__/firebase/8.10.1/firebase-installations.js"></script> |
المراسلة السحابية | <script src="/__/firebase/8.10.1/firebase-messaging.js"></script> للحصول على أفضل تجربة باستخدام المراسلة السحابية ، أضف أيضًا Firebase SDK للتحليلات. |
سحابة التخزين | <script src="/__/firebase/8.10.1/firebase-storage.js"></script> |
مراقبة الاداء (إصدار بيتا ) | <script src="/__/firebase/8.10.1/firebase-performance.js"></script> |
قاعدة بيانات الوقت الفعلي | <script src="/__/firebase/8.10.1/firebase-database.js"></script> |
التكوين عن بعد (إصدار بيتا ) | <script src="/__/firebase/8.10.1/firebase-remote-config.js"></script> للحصول على أفضل تجربة باستخدام Remote Config ، أضف أيضًا Firebase SDK للتحليلات. |
Firebase JavaScript SDK (SDK كامل) | <script src="/__/firebase/8.10.1/firebase.js"></script> |
مساعدي المؤلف
تستخدم مصادقة Firebase مساحة الاسم المحجوزة لتوفير JavaScript و HTML خاصين لإكمال المصادقة مع الموفرين عبر OAuth. يتيح ذلك لكل مشروع Firebase أن يكون له نطاق فرعي فريد في Firebase ، مما يزيد من أمان مصادقة Firebase.
بالإضافة إلى ذلك ، يسمح لك هذا باستخدام المجال المخصص الخاص بك لخيار authDomain
الخاص بـ firebase.initializeApp()
. إذا قمت بتكوين مجال مخصص لاستضافة Firebase ، فيمكنك أيضًا تحديد هذا المجال المخصص (بدلاً من المجال الفرعي web.app
أو firebaseapp.com
) عند تهيئة Firebase SDKs.
عناوين URL المحجوزة وعمال الخدمة
إذا كنت تقوم بإنشاء تطبيق ويب تقدمي (PWA) ، فقد تقوم بإنشاء عامل خدمة لديه "احتياطي للتنقل" ويعرض عنوان URL محددًا بشكل افتراضي إذا كان لا يتطابق مع قائمة العناصر المُسبقة مسبقًا.
إذا كنت تستخدم مكتبة sw-precache ، فيمكنك إضافة إعداد القائمة البيضاء الاحتياطية للتنقل الذي يستبعد مساحة الاسم المحجوزة:
{
navigateFallbackWhitelist: [/^(?!\/__).*/]
}
بشكل عام ، تذكر فقط أن مساحة الاسم ذات الشرطة السفلية المزدوجة محجوزة لاستخدام Firebase وأنه لا ينبغي لك اعتراض هذه الطلبات في عامل الخدمة لديك.