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

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

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

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

نظرًا لأن استضافة Firebase يتم تقديمها عبر HTTP / 2 عند النشر ، يمكنك تعزيز الأداء عن طريق تحميل الملفات من الأصل نفسه. تقدم استضافة Firebase جميع إصدارات Firebase JavaScript SDK من عناوين URL خاصة منسقة على النحو التالي:

/__/firebase/JS_SDK_VERSION/FIREBASE_SDK_NAME.js

ونحن نوصي بشدة تحميل فقط المكتبات التي تستخدمها في التطبيق الخاص بك. على سبيل المثال، لتشمل فقط مصادقة والغيمة 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.8.0/firebase-app.js"></script>

  <!-- Add Firebase products that you want to use -->
  <script src="/__/firebase/8.8.0/firebase-auth.js"></script>
  <script src="/__/firebase/8.8.0/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 جافا سكريبت 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.8.0/firebase-app.js"></script>
تحليلات
<script src="/__/firebase/8.8.0/firebase-analytics.js"></script>
المصادقة
<script src="/__/firebase/8.8.0/firebase-auth.js"></script>
سحابة Firestore
<script src="/__/firebase/8.8.0/firebase-firestore.js"></script>
وظائف السحابة لـ Firebase Client SDK
<script src="/__/firebase/8.8.0/firebase-functions.js"></script>
المراسلة السحابية
<script src="/__/firebase/8.8.0/firebase-messaging.js"></script>

للحصول على أفضل تجربة باستخدام المراسلة السحابية ، أضف أيضًا Firebase SDK للتحليلات.

سحابة التخزين
<script src="/__/firebase/8.8.0/firebase-storage.js"></script>
مراقبة الاداء
(الإصدار بيتا)
<script src="/__/firebase/8.8.0/firebase-performance.js"></script>
قاعدة بيانات الوقت الفعلي
<script src="/__/firebase/8.8.0/firebase-database.js"></script>
التكوين عن بعد
(الإصدار بيتا)
<script src="/__/firebase/8.8.0/firebase-remote-config.js"></script>

للحصول على أفضل تجربة باستخدام Remote Config ، أضف أيضًا Firebase SDK للتحليلات.

Firebase JavaScript SDK
(SDK كامل)
<script src="/__/firebase/8.8.0/firebase.js"></script>

مساعدي المؤلف

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

وبالإضافة إلى ذلك، وهذا يتيح لك استخدام النطاقات المخصصة الخاصة بك ل authDomain خيار firebase.initializeApp() . إذا كنت تكوين مجال مخصصة للFirebase استضافة، ثم يمكنك أيضا تحديد هذا المجال مخصصة (بدلا من الخاصة بك web.app أو firebaseapp.com فرعي) عند تهيئة Firebase تطوير البرامج.

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

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

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

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

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