טען את קבצי ה- SDK של Firebase מכתובות אתרים שמורות

Firebase אירוח עתודות הכתובות באתר שלך מתחיל עם /__ . מרחב שמות שמור זה מקל על השימוש במוצרי Firebase אחרים יחד עם Firebase Hosting.

כתובות שמורות אלה זמינים הן כשתפרוס כדי Firebase ( firebase deploy ) או כאשר אתה מפעיל את האפליקציה שלך בשרת מקומי ( firebase serve ).

הוסף סקריפטים עבור כתובות אתרים שמורות

מכיוון שאירוח Firebase מוגש באמצעות HTTP/2 בעת הפריסה, תוכל לשפר את הביצועים על ידי טעינת קבצים מאותו מקור. Firebase Hosting משרת את כל הגרסאות של SDK JavaScript של Firebase מכתובות אתרים מיוחדות המעוצבות כך:

/__/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.10.0/firebase-app.js"></script>

  <!-- Add Firebase products that you want to use -->
  <script src="/__/firebase/8.10.0/firebase-auth.js"></script>
  <script src="/__/firebase/8.10.0/firebase-firestore.js"></script>
</body>

תצורה אוטומטית של SDK

תצורת SDK אוטומטית מאפשרת לנהל בקלות סביבות מרובות (כגון dev, staging והפקה) מבסיס קוד אחד. על ידי הסתמכות על כתובת האתר המארחת השמורה, תוכל לפרוס את אותו קוד למספר פרויקטים של Firebase.

בנוסף לאירוח ה- SDK עצמם, מרחב השמות השמור מספק גם את כל התצורה הדרושה לאתחול ה- SDK לפרויקט Firebase המשויך לאתר אירוח. תצורה זו של Firebase ואיתחול SDK מסופקים על ידי סקריפט שתוכל לכלול ישירות:

<!-- Load the Firebase SDKs before loading this file -->
<script src="/__/firebase/init.js"></script>

כשאתה לפרוס Firebase או לבדוק את האפליקציה שלך באופן מקומי, התסריט הזה באופן אוטומטי את התצורה של ה- SDK JavaScript Firebase עבור פרויקט Firebase פעיל ומאתחל את ה- SDK.

אם אתה מעדיף לשלוט בעצמך אתחול, ערכי התצורה של Firebase זמינים גם בטופס JSON:

fetch('/__/firebase/init.json').then(async response => {
  firebase.initializeApp(await response.json());
});

זמינות JS SDK של Firebase (מתוך כתובות אתרים שמורות לאירוח)

מוצר Firebase הפניה לספרייה (כתובת אתר שמורה)
ליבת Firebase
(נדרש)
<script src="/__/firebase/8.10.0/firebase-app.js"></script>
ניתוח
<script src="/__/firebase/8.10.0/firebase-analytics.js"></script>
בדיקת אפליקציות
<script src="/__/firebase/8.10.0/firebase-app-check.js"></script>
אימות
<script src="/__/firebase/8.10.0/firebase-auth.js"></script>
Cloud Firestore
<script src="/__/firebase/8.10.0/firebase-firestore.js"></script>
פונקציות ענן עבור Firebase Client SDK
<script src="/__/firebase/8.10.0/firebase-functions.js"></script>
העברת הודעות בענן
<script src="/__/firebase/8.10.0/firebase-messaging.js"></script>

לקבלת חוויה מיטבית באמצעות Cloud Messaging, הוסף גם את Firebase SDK עבור Analytics.

אחסון בענן
<script src="/__/firebase/8.10.0/firebase-storage.js"></script>
ניטור ביצועים
(גירסת ביטא)
<script src="/__/firebase/8.10.0/firebase-performance.js"></script>
מסד נתונים בזמן אמת
<script src="/__/firebase/8.10.0/firebase-database.js"></script>
תצורה מרחוק
(גירסת ביטא)
<script src="/__/firebase/8.10.0/firebase-remote-config.js"></script>

לקבלת חוויה מיטבית באמצעות Config Remote, הוסף גם את Firebase SDK ל- Analytics.

Firebase JavaScript SDK
(SDK שלם)
<script src="/__/firebase/8.10.0/firebase.js"></script>

עוזרים אמיתיים

אימות Firebase משתמשת מרחב שמות שמור לספק JavaScript מיוחדת ו- HTML כדי אימות להשלים עם ספקי דרך OAuth. זה מאפשר לכל פרויקט Firebase להיות בעל תת -דומיין ייחודי של Firebase, מה שמגדיל את האבטחה של אימות Firebase.

בנוסף, זה מאפשר לך להשתמש תחום מותאם אישית משלך עבור authDomain אפשרות של firebase.initializeApp() . אם להגדיר דומיין מותאם אישית עבור Firebase אירוח, אז אתה יכול גם לציין כי תחום מותאם אישית (במקום שלך web.app או firebaseapp.com משנה) כאשר אתחול בערכות הפיתוח Firebase.

כתובות אתרים שמורות ועובדי שירות

אם אתה בונה יישום אינטרנט פרוגרסיבי (PWA), תוכל ליצור עובד שירות שיש לו "ניווט ניווט" וייתן כתובת אתר ספציפית כברירת מחדל אם היא אינה תואמת לרשימת הפריטים הטמונים.

אם אתה משתמש SW-precache הספרייה, אתה יכול להוסיף fallback ניווט לבן קביעה שאיננו כולל המרחב שמור:

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

באופן כללי, זכור כי מרחב השמות עם קו תחתון כפול שמור לשימוש ב- Firebase ושאסור ליירט בקשות אלה אצל עובד השירות שלך.