Firebase App Hosting מתאים במיוחד לאפליקציות דינמיות לאינטרנט שנוצרו באמצעות ה-SDK של Firebase JavaScript ו-Firebase Admin SDK ל-Node.js. באפליקציית אינטרנט עם כל התכונות, ערכות SDK של Firebase כמו Authentication, Cloud Firestore ו-App Check ממלאות תפקידים חשובים. במדריך הזה מפורטות כמה אסטרטגיות מרכזיות שיעזרו לכם לבצע אופטימיזציה של ערכות ה-SDK של Firebase ולהתחיל להטמיע את Firebase באפליקציית האינטרנט שלכם ב-Firebase App Hosting.
אתחול אוטומטי של Firebase Admin SDK וערכות SDK לאינטרנט
סביבות של Google כמו Firebase App Hosting מספקות אתחול פשוט של אפליקציות באמצעות קריאה ל-constructor ללא ארגומנטים בזמן ה-build ובזמן הריצה. התכונה הזו קיימת גם ב-Firebase Admin SDK ל-Node.js – ערכת SDK בצד השרת שפותחת מגוון רחב של פונקציות ב-Firebase ויכולה להיות שימושית מאוד באפליקציית האינטרנט – וגם ב-Firebase JavaScript SDK.
בעזרת initializeApp(), אתם יכולים לאפשר ל-Firebase App Hosting לאכלס באופן אוטומטי את ההגדרות של אפליקציית האינטרנט, ועדיין לשמור על האפשרות לשלוט באופן פרטני בערכים ספציפיים אם אתם רוצים לשנות את ערכי ברירת המחדל.
אתחול ללא ארגומנטים
כדי להפעיל את ה-SDK של Firebase Admin SDK או של Firebase JavaScript עם ערכי הגדרות ברירת המחדל, משתמשים ב-initializeApp() בלי לספק ארגומנטים.
Admin SDK
import { initializeApp } from 'firebase-admin/app';
const app = initializeApp();
ב-Admin SDK, אסטרטגיית האתחול הזו פועלת ב-App Hosting וגם בסביבות שרתים אחרות של Google, כולל פונקציות של Cloud Run, App Engine ו-Cloud Run.
JavaScript SDK
import { initializeApp } from 'firebase/app';
const app = initializeApp();
ב-JavaScript SDK, אסטרטגיית האיניציאליזציה הזו פועלת ב-App Hosting.
שינוי הערכים שמולאו באופן אוטומטי
אתם יכולים לשנות את הגדרת ברירת המחדל שמוזרקת באופן אוטומטי. חשוב לדעת שהאפשרויות האלה שונות בין Admin SDK לבין JavaScript SDK.
כלל ביטול אחד (Admin SDK)
כדי לציין אפשרויות אתחול בהתאמה אישית לשירותים כמו מסד נתונים בזמן אמת, Cloud Storage או Cloud Functions, משתמשים במשתנה הסביבה FIREBASE_CONFIG. אם התוכן של המשתנה FIREBASE_CONFIG מתחיל בתו {, הוא ינותח כאובייקט JSON. אחרת, ה-SDK מניח שהמחרוזת היא הנתיב של קובץ JSON שמכיל את האפשרויות.
# apphosting.yaml
env:
- variable: FIREBASE_CONFIG
value: '{"databaseURL":"https://project-id-default-rtdb.firebaseio.com","projectId":"my-project-id"}'
שינוי של JavaScript SDK
כדי לשנות את ערכי ברירת המחדל של FIREBASE_WEBAPP_CONFIG ש-App Hosting מוסיף לאתחול של JavaScript SDK, אפשר לציין ערכים ב-apphosting.yaml:
# apphosting.yaml
env:
- variable: FIREBASE_WEBAPP_CONFIG
value: '{"apiKey":"myApiKey","appId":"app:123","authDomain":"project-id.firebaseapp.com","databaseURL":"https://project-id-default-rtdb.firebaseio.com","messagingSenderId":"0123456789","projectId":"project-id","storageBucket":"project-id.firebasestorage.app"}'
שימוש בהפעלה אוטומטית בסביבות אחרות
ההפעלה האוטומטית מוגדרת באמצעות סקריפט postinstall
npm כשמתקינים את Firebase JavaScript SDK. הסקריפט postinstall מחפש את משתנה הסביבה FIREBASE_WEBAPP_CONFIG, שמוגדר באופן אוטומטי בסביבת build של App Hosting Cloud.
אם מתקינים את JS SDK מחוץ ל-Cloud Build, צריך להגדיר את משתנה הסביבה הזה בעצמכם כשמתקינים את Firebase JavaScript SDK.
כדי להגדיר את הסביבה באופן ידני במהלך ההתקנה:
מעתיקים את אובייקט ההגדרה של אפליקציית האינטרנט של Firebase ממסוף Firebase.
בטרמינל, מגדירים את משתנה הסביבה
FIREBASE_WEBAPP_CONFIGלפני שמריצים את הפקודהnpm install.
FIREBASE_WEBAPP_CONFIG="{...}" npm install firebase
בכל פעם שמשנים את הפרויקט ב-Firebase או את אפליקציית האינטרנט, צריך להריץ מחדש את הפקודה הזו. יכול להיות שצריך לנקות גם מטמונים של מתווכים (כמו .next/cache).
שימוש ב-FirebaseServerApp ל-SSR
אם השתמשתם ב-Firebase JS SDK או ב-Firebase client SDK אחרים בפיתוח של אפליקציית האינטרנט, אתם כנראה מכירים את הממשק FirebaseApp ואת אופן השימוש בו כדי להגדיר מכונות של אפליקציות. כדי לאפשר פעולות דומות בצד השרת, Firebase מספקת את FirebaseServerApp.
FirebaseServerApp היא וריאנט של FirebaseApp לשימוש בסביבות של רינדור בצד השרת (SSR). הוא כולל כלים להמשך סשנים ב-Firebase שכוללים עיבוד בצד הלקוח (CSR) ועיבוד בצד השרת (SSR).
השתמש בFirebaseServerApp כדי:
- מריץ קוד בצד השרת בהקשר של המשתמש, בניגוד ל-Firebase Admin SDK שיש לו זכויות ניהול מלאות.
- מפעילים את השימוש ב-App Check בסביבות SSR.
- להמשיך סשן של Firebase Auth שנוצר בלקוח.
לפרטים מלאים על השימוש ב-FirebaseServerApp למטרות האלה, ראו שימוש ב-Firebase באפליקציות אינטרנט דינמיות עם SSR.
הפעלת App Check באפליקציית האינטרנט
אתם יכולים להשתמש ב-App Check כדי לחזק את האבטחה של אפליקציית האינטרנט הדינמית ב-App Hosting. כדי להגן על הקצה העורפי של App Hosting מפני ניצול לרעה, אתם יכולים להטמיע חלק מהאסטרטגיות הספציפיות בצד השרת שמתוארות במאמר שימוש ב-Firebase באפליקציות אינטרנט דינמיות עם SSR.