הסביבות הנתמכות של 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
Cordova
App Check
(באמצעות ספק מותאם אישית לביצוע אימות של מכשיר מקורי)

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

(ראו הערה)

(ראו הערה)

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

(למעט
עמידות)
Cloud Functions
Data Connect
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 Stable
Node < 10 ES Stable

תוספים אופציונליים למיפוי תכונות (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

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

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

ב-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) ולהוספת polyfills (אפשרות useBuiltIns).

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

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

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

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

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