تحميل Firebase SDKs من عناوين URL المحجوزة

يحتفظ Firebase Hosting بعناوين URL في موقعك تبدأ بـ /__ . تعمل مساحة الاسم المحجوزة هذه على تسهيل استخدام منتجات Firebase الأخرى مع Firebase Hosting.

تتوفر عناوين URL المحجوزة هذه عند النشر في Firebase ( firebase deploy ) أو عند تشغيل تطبيقك على خادم محلي ( firebase serve ).

أضف البرامج النصية لعناوين URL المحجوزة

نظرًا لأن استضافة Firebase يتم تقديمها عبر HTTP / 2 عند النشر ، يمكنك تعزيز الأداء عن طريق تحميل الملفات من الأصل نفسه. تقدم استضافة Firebase جميع إصدارات 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.

بالإضافة إلى استضافة حزم SDK نفسها ، توفر مساحة الاسم المحجوزة أيضًا كل التكوينات اللازمة لتهيئة 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.initializeApp() . إذا قمت بتكوين مجال مخصص لاستضافة Firebase ، فيمكنك أيضًا تحديد هذا المجال المخصص (بدلاً من المجال الفرعي web.app أو firebaseapp.com ) عند تهيئة Firebase SDKs.

عناوين URL المحجوزة وعمال الخدمة

إذا كنت تقوم بإنشاء تطبيق ويب تقدمي (PWA) ، فيمكنك إنشاء عامل خدمة لديه "احتياطي للتنقل" ويعرض عنوان URL محددًا بشكل افتراضي إذا لم يتطابق مع قائمة العناصر المُسبقة مسبقًا.

إذا كنت تستخدم مكتبة sw-precache ، فيمكنك إضافة إعداد القائمة البيضاء الاحتياطية للتنقل الذي يستبعد مساحة الاسم المحجوزة:

{
  navigateFallbackWhitelist: [/^(?!\/__).*/]
}

بشكل عام ، تذكر فقط أن مساحة الاسم ذات الشرطة السفلية المزدوجة محجوزة لاستخدام Firebase وأنه لا ينبغي لك اعتراض هذه الطلبات في عامل الخدمة لديك.