Google 致力于为黑人社区推动种族平等。查看具体举措

تحميل 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.6.8/firebase-app.js"></script>

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

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

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

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

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

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

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

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

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

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

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

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

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