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).