שילוב ערכות ה-SDK של Firebase באפליקציית האינטרנט

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.

כדי להגדיר את הסביבה באופן ידני במהלך ההתקנה:

  1. מעתיקים את אובייקט התצורה של אפליקציית האינטרנט ב-Firebase ממסוף Firebase.

  2. בטרמינל, מגדירים את משתנה הסביבה 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.