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

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

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

דפדפנים

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

(למעט
עמידות
אם iOS < 10)
Cloud Functions
Firebase התקנות
Cloud Messaging
(Edge בגרסה 17 ומעלה, לא בנייד)
Cloud Storage
Performance Monitoring
Realtime Database
Remote Config
Vertex AI in Firebase

סביבות אחרות

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

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

(יש לעיין בהערה)

(ראו הערה)

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

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

פוליגונים לסימון שטח

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

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

מילויים נדרשים

סביבות פולי מילויים
Safari בגרסה 7, 8 ו-9 יציבות ES
Node < 10 יציבות ES

polyfills אופציונליים

סביבות Polyfills מוצרי Firebase
  • Safari < 10.1
  • iOS גרסה 10.3 ואילך
אחזור
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Performance Monitoring
  • צומת < 18
אחזור
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Cloud Storage
  • React Native ו-Expo
base-64
  • Cloud Storage

הצעות ל-polyfills

פולי מילויים רישיון
יציבות ES MIT
fetch – ‏'cross-fetch' – מתאים במיוחד לדפדפנים ישנים יותר MIT
fetch – ‏undici – מתאים במיוחד ל-Node.js MIT
base-64 MIT

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

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

מתקינים את 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 מוסבר איך לשלב את Babel עם Bundler.

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

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

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

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

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

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

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