Firebase App Hosting מתאים במיוחד לאפליקציות אינטרנט דינמיות שנוצרו באמצעות Firebase JavaScript SDK ו-Firebase Admin SDK ל-Node.js. באפליקציית אינטרנט מלאה, ל-Firebase SDKs כמו 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 JavaScript או את Firebase Admin SDK עם ערכי ברירת המחדל של ההגדרות, משתמשים ב-initializeApp()
בלי לספק ארגומנטים:
Admin SDK
import { initializeApp } from 'firebase-admin/app';
const app = initializeApp();
JavaScript SDK
import { initializeApp } from 'firebase/app';
const app = initializeApp();
האסטרטגיה הזו לאינטליגנציה של Admin SDK פועלת ב-App Hosting וגם בסביבות שרת אחרות של Google, כולל Cloud Run, App Engine ו-Cloud Functions. בשביל ה-SDK של JavaScript, השיטה הזו פועלת ב-App Hosting.
שינוי ערכים שאוכלסו באופן אוטומטי
אפשר לשנות את הגדרת ברירת המחדל שמוזנת באופן אוטומטי. חשוב לזכור שהאפשרויות האלה משתנות בין Admin SDK לבין JavaScript SDK.
שינוי Admin SDK
כדי לציין אפשרויות אתחול בהתאמה אישית לשירותים כמו Realtime Database, Cloud Storage או Cloud Functions, אפשר להשתמש במשתנה הסביבה FIREBASE_CONFIG
. אם התוכן של המשתנה FIREBASE_CONFIG
מתחיל בתו {
, הוא ינותח כאובייקט JSON. אחרת, ה-SDK יחשוב שהמחרוזת היא הנתיב לקובץ JSON שמכיל את האפשרויות.
# apphosting.yaml
env:
- variable: FIREBASE_CONFIG
value: '{"credential: applicationDefault()","databaseURL":"https://project-id-default-rtdb.firebaseio.com"}'
שינוי מברירת המחדל של 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"}'
שימוש בהפעלה אוטומטית בסביבות אחרות
ההפעלה האוטומטית מוגדרת באמצעות סקריפט npm postinstall כשמתקינים את Firebase JavaScript SDK. הסקריפט שלאחר ההתקנה מחפש את משתנה הסביבה FIREBASE_WEBAPP_CONFIG
, שמוגדר באופן אוטומטי בסביבה App Hosting של Cloud Build.
אם מתקינים את ה-SDK ל-JS מחוץ ל-Cloud Build, למשל באופן מקומי לשימוש עם Firebase Emulator Suite, צריך להגדיר את משתנה הסביבה הזה בעצמכם כשמתקינים את ה-SDK ל-JavaScript של Firebase.
כדי להגדיר את הסביבה באופן ידני במהלך ההתקנה:
מעתיקים את אובייקט התצורה של אפליקציית האינטרנט ב-Firebase ממסוף Firebase.
בטרמינל, מגדירים את משתנה הסביבה
FIREBASE_WEBAPP_CONFIG
לפני שמריצים את הפקודהnpm install
.
FIREBASE_WEBAPP_CONFIG="{...}" npm install firebase
בכל פעם שמשנים את הפרויקט או את אפליקציית האינטרנט ב-Firebase, צריך להריץ מחדש את הפקודה הזו.
שימוש ב-FirebaseServerApp
ל-SSR
אם עבדתם עם Firebase JS SDK או עם ערכות SDK אחרות של לקוחות Firebase במהלך הפיתוח של אפליקציית האינטרנט, סביר להניח שאתם מכירים את הממשק FirebaseApp
ואת האופן שבו משתמשים בו כדי להגדיר מכונות של אפליקציות. כדי לבצע פעולות דומות בצד השרת, Firebase מספק את FirebaseServerApp
.
FirebaseServerApp
הוא וריאנט של FirebaseApp
לשימוש בסביבות של עיבוד בצד השרת (SSR). הוא כולל כלים להמשך סשנים ב-Firebase שמתפרסים על פני הגבול בין רינדור בצד הלקוח (CSR) לבין רינדור בצד השרת.
השתמש בFirebaseServerApp
כדי:
- להריץ קוד בצד השרת בהקשר של user, בניגוד ל-Firebase Admin SDK שיש לו הרשאות ניהול מלאות.
- מפעילים את השימוש ב-App Check בסביבות SSR.
- המשך סשן אימות של Firebase שנוצר בלקוח.
פרטים מלאים על השימוש ב-FirebaseServerApp
למטרות האלה מופיעים במאמר שימוש ב-Firebase באפליקציות אינטרנט דינמיות עם SSR.
הפעלת App Check באפליקציית האינטרנט
אפשר להשתמש ב-App Check כדי לשפר את האבטחה של אפליקציית האינטרנט הדינמית ב-App Hosting. כדי להגן על הקצוות העורפיים של App Hosting מפני ניצול לרעה, תוכלו להטמיע חלק מהאסטרטגיות הספציפיות בצד השרת שמתוארות במאמר שימוש ב-Firebase באפליקציות אינטרנט דינמיות עם SSR.