טעינת ערכות 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 אוטומטית מאפשרת לנהל בקלות סביבות מרובות (כמו כמו dev, Staging ו-Production) מ-codebase אחד. באמצעות הסתמכות על שמורה של כתובת 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 שמור)

מוצר 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 ו-service worker שמורים

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

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

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

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