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