Firebase Hosting שומרת כתובות URL באתר שלכם שמתחילות ב-/__
. מרחב השמות הזה שמור, כך שקל יותר להשתמש במוצרי Firebase אחרים יחד עם Firebase Hosting.
כתובות ה-URL השמורות האלה זמינות גם כשפורסים ל-Firebase (firebase deploy
) וגם כשמריצים את האפליקציה בשרת מקומי (firebase serve
).
הוספת סקריפטים לכתובות URL שמורות
מכיוון ש-Firebase Hosting מוצג באמצעות HTTP/2 כשפורסים אותו, אפשר לשפר את הביצועים על ידי טעינת קבצים מאותו מקור. Firebase Hosting מציג את גרסת 8 של ה-SDK של Firebase JavaScript מכתובות 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 SDK ל-JS שזמינות (מ-URL Hosting ששמורים)
כתובות URLמוצר Firebase | הפניה לספרייה (כתובת URL שמורה) |
---|---|
הליבה של Firebase (חובה) |
<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 שמורות ושירותי עבודה
אם אתם מפתחים אפליקציית אינטרנט מתקדמת (PWA), תוכלו ליצור קובץ שירות (service worker) עם 'חלופה לניווט', שיציג כתובת URL ספציפית כברירת מחדל אם היא לא תואמת לרשימה של פריטים שנשמרו במטמון מראש.
אם אתם משתמשים בספרייה sw-precache, תוכלו להוסיף הגדרה של רשימת לבן לגיבוי לניווט, שלא כוללת את מרחב השמות השמור:
{
navigateFallbackWhitelist: [/^(?!\/__).*/]
}
באופן כללי, חשוב לזכור שמרחב השמות עם הקווים התחתונים הכפולים מיועד לשימוש ב-Firebase, ואסור ליירט את הבקשות האלה ב-service worker.