טען ערכות Firebase מכתובות אתרים שמורות

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

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

הוסף סקריפטים עבור כתובות אתרים שמורות

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

/__/firebase/JS_SDK_VERSION/FIREBASE_SDK_NAME.js

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

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

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

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

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

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

ערכות SDK זמינות של Firebase JS (מכתובות אתרים שמורות של אירוח)

מוצר Firebase הפניה לספרייה (כתובת אתר שמורה)
ליבת Firebase
(נדרש)
<script src="/__/firebase/8.10.1/firebase-app.js"></script>
ניתוח
<script src="/__/firebase/8.10.1/firebase-analytics.js"></script>
בדיקת אפליקציה
<script src="/__/firebase/8.10.1/firebase-app-check.js"></script>
אימות
<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>
העברת הודעות בענן
<script src="/__/firebase/8.10.1/firebase-messaging.js"></script>

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

אחסון בענן
<script src="/__/firebase/8.10.1/firebase-storage.js"></script>
ניטור ביצועים
(מהדורת בטא )
<script src="/__/firebase/8.10.1/firebase-performance.js"></script>
מסד נתונים בזמן אמת
<script src="/__/firebase/8.10.1/firebase-database.js"></script>
תצורה מרחוק
(מהדורת בטא )
<script src="/__/firebase/8.10.1/firebase-remote-config.js"></script>

לחוויה מיטבית בשימוש ב-Remote Config, הוסף גם את Firebase SDK for Analytics.

Firebase JavaScript SDK
(ערכת פיתוח התוכנה השלמה)
<script src="/__/firebase/8.10.1/firebase.js"></script>

עוזרי אות

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

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

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

אם אתה בונה אפליקציית אינטרנט מתקדמת (PWA), ייתכן שתיצור Service Worker שיש לו "נפילת ניווט" ומעבד כתובת URL ספציפית כברירת מחדל אם היא אינה תואמת לרשימה של פריטים שמורים מראש.

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

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

באופן כללי, רק זכור שמרחב השמות עם קו תחתון שמור לשימוש ב-Firebase ושאין ליירט בקשות אלו ב-Service Worker שלך.