טעינת ערכות Firebase SDK מכתובות URL שמורות

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

כתובות ה-URL השמורות האלה זמינות גם כשפורסים ב-Firebase (firebase deploy) וגם כשמריצים את האפליקציה בשרת מקומי (firebase serve).

הוספת סקריפטים לכתובות URL שמורות

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

/__/firebase/JS_SDK_VERSION/FIREBASE_SDK_NAME.js

מומלץ מאוד לטעון רק את הספריות שבהן אתם משתמשים באפליקציה. לדוגמה, כדי לכלול רק את Authentication ו-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 מאפשרת לנהל בקלות כמה סביבות (למשל פיתוח, Staging וייצור) מתוך קוד בסיס יחיד. בעזרת כתובת ה-URL Hosting ששמורה, אפשר לפרוס את אותו קוד במספר פרויקטים ב-Firebase.

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

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

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

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

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

ערכות Firebase JS SDK זמינות (מ-URL Hosting שמור)

כתובות URL
מוצר Firebase הפניה לספרייה (כתובת URL שמורה)
Firebase core
(חובה)
<script src="/__/firebase/8.10.1/firebase-app.js"></script>
Analytics
<script src="/__/firebase/8.10.1/firebase-analytics.js"></script>
App Check
<script src="/__/firebase/8.10.1/firebase-app-check.js"></script>
Authentication
<script src="/__/firebase/8.10.1/firebase-auth.js"></script>
Cloud Firestore
<script src="/__/firebase/8.10.1/firebase-firestore.js"></script>
Cloud Functions for Firebase Client SDK
<script src="/__/firebase/8.10.1/firebase-functions.js"></script>
Firebase התקנות
<script src="/__/firebase/8.10.1/firebase-installations.js"></script>
Cloud Messaging
<script src="/__/firebase/8.10.1/firebase-messaging.js"></script>

כדי ליהנות מחוויית שימוש אופטימלית ב-Cloud Messaging, מוסיפים גם את Firebase SDK ל-Analytics.

Cloud Storage
<script src="/__/firebase/8.10.1/firebase-storage.js"></script>
Performance Monitoring
(גרסת בטא)
<script src="/__/firebase/8.10.1/firebase-performance.js"></script>
Realtime Database
<script src="/__/firebase/8.10.1/firebase-database.js"></script>
Remote Config
(גרסת בטא)
<script src="/__/firebase/8.10.1/firebase-remote-config.js"></script>

כדי ליהנות מחוויית שימוש אופטימלית ב-Remote Config, מוסיפים גם את Firebase SDK ל-Analytics.

Firebase JavaScript SDK
(כל ה-SDK)
<script src="/__/firebase/8.10.1/firebase.js"></script>

כלי עזר לאימות

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

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

כתובות URL שמורות ושירותי עבודה

אם אתם מפתחים אפליקציית Progressive Web App‏ (PWA), תוכלו ליצור קובץ שירות (service worker) עם 'חלופה לניווט', שיציג כתובת URL ספציפית כברירת מחדל אם היא לא תואמת לרשימה של פריטים שנשמרו במטמון מראש.

אם אתם משתמשים בספרייה sw-precache, תוכלו להוסיף הגדרה של רשימת לבן לגיבוי לניווט, שלא כוללת את מרחב השמות השמור:

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

באופן כללי, חשוב לזכור שמרחב השמות עם הקו התחתון הכפול שמור לשימוש ב-Firebase ואסור ליירט את הבקשות האלה בקובץ השירות (service worker).