הסביבות הנתמכות של Firebase JavaScript SDK

סביבות נתמכות

ערכת ה-SDK של Firebase JavaScript נתמכת באופן רשמי בסביבות הבאות.

דפדפנים

מוצר Firebase Edge Firefox Chrome iOS Safari Safari
Firebase AI Logic 1
Analytics
App Check
Authentication
Cloud Firestore
(למעט
התמדה)

(חוץ
מ-persistence
אם iOS < 10)
Cloud Functions
Cloud Messaging
(Edge 17 ואילך, למעט בניידים)
Cloud Storage
Firebase התקנות
Performance Monitoring
Realtime Database
Remote Config
SQL Connect

1 Firebase AI Logic נקרא בעבר "Vertex AI in Firebase".

בסביבות אחרות

מוצר Firebase React Native ‫Node.js (גרסה 18 ומעלה) תוספים
ל-Chrome
קורדובה
Firebase AI Logic 1
App Check
(באמצעות ספק בהתאמה אישית לאימות מכשיר מקורי)

(באמצעות ספק בהתאמה אישית)
Analytics
Authentication
(ראו הערה)

(ראו הערה)

(ראו הערה)

(ראו הערה)
Cloud Firestore
(למעט
התמדה)

(למעט
התמדה)
Cloud Functions
Cloud Messaging
Cloud Storage
(למעט
העלאות)
Firebase התקנות
Performance Monitoring
Realtime Database
Remote Config
SQL Connect

1 Firebase AI Logic נקרא בעבר "Vertex AI in Firebase".

Polyfills

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

בקטעים הבאים מפורטים רוב ה-polyfills שאולי תצטרכו.

רכיבי polyfill נדרשים

סביבות Polyfills
Safari 7,‏ 8 ו-9 ES Stable
Node < 10 ES Stable

‫Polyfills אופציונליים

סביבות Polyfills מוצרי Firebase
  • Safari < 10.1
  • iOS < 10.3
fetch
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Performance Monitoring
  • Node < 18
fetch
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Cloud Storage
  • ‫React Native ו-Expo
base-64
  • Cloud Storage

הצעות ל-polyfill

Polyfills רישיון
ES Stable MIT
‫fetch‏ – `cross-fetch` – הכי מתאים לדפדפנים ישנים יותר MIT
fetch – ‏`undici` – הכי מתאים ל-Node.js MIT
base-64 MIT

הגדרת Polyfill נדרשת ל-React Native ול-Expo

ב-React Native וב-Expo, אם אתם מעלים מחרוזת בקידוד Base64, אתם צריכים לבצע את הפעולות הבאות:

מתקינים את base-64 מ-npm:

npm install base-64

מייבאים את decode מ-base-64 ומצרפים אותו להיקף הגלובלי בתור atob כדי ש-Cloud Storage יוכל לגשת אליו.

import { decode } from 'base-64';

if(typeof atob === 'undefined') {
  global.atob = decode;
}

הוספת polyfills לאפליקציה

אפשרות 1: (מומלץ) שימוש ב-bundler שמשולב עם Babel

אם אתם משתמשים ב-bundler, שלבו עם Babel ו-‎@babel/preset-env כדי לקבל polyfills.

כדי ללמוד איך לשלב את Babel עם ה-bundler, אפשר להשתמש במדריך ההגדרה האינטראקטיבי של Babel.

עם Babel, אתם לא צריכים לדאוג לגבי ה-polyfills המדויקים שצריך לכלול. במקום זאת, אתם מציינים את סביבות הדפדפן המינימליות שאתם צריכים לתמוך בהן. לאחר מכן, Babel מוסיף את ה-polyfills הנדרשים. ‫Babel מבטיח שהדרישות שלכם לתמיכה בדפדפן תמיד יתקיימו, גם אם Firebase או הקוד שלכם יתחילו להשתמש בתכונות חדשות של ES.

ב-‎@babel/preset-env יש מידע מפורט על אפשרויות ההגדרה הזמינות לציון יעדי סביבה (אפשרות targets) ולהוספת polyfills (אפשרות useBuiltIns).

אפשרות 2: (לא מומלץ) הוספת polyfills באופן ידני

אפשר להוסיף polyfills באופן ידני באמצעות ספריות ה-polyfill המועדפות עליכם (לדוגמה, core-js).

import 'core-js/stable'
import 'cross-fetch/polyfill';

ב-core-js יש גם קובץ polyfill כולל שאפשר לכלול ישירות בדף ה-HTML.

האפשרות הזו יכולה להיות דרך נוחה לניהול polyfills אם אתם לא משתמשים ב-Babel. עם זאת, אנחנו לא ממליצים על האפשרות הזו של הכל-באחד לאפליקציות בסביבת ייצור, כי סביר להניח שהיא תכלול פוליפילים מיותרים, שיגדילו את משקל הדף וכתוצאה מכך את זמן הטעינה של הדף.