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

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

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

דפדפנים

מוצר Firebase Edge Firefox Chrome ‫iOS Safari Safari
Firebase AI Logic 1
Analytics
App Check
Authentication
Cloud Firestore
(except
persistence)

(except
persistence
if iOS < 10)
Cloud Functions
Firebase התקנות
Cloud Messaging
(Edge 17 ומעלה, למעט בנייד)
Cloud Storage
Data Connect
Performance Monitoring
Realtime Database
Remote Config

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

סביבות אחרות

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

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

(ראו הערה)

(ראו הערה)

(ראו הערה)
Cloud Firestore
(except
persistence)

(except
persistence)
Cloud Functions
Data Connect
Firebase התקנות
Cloud Messaging
Cloud Storage
(except
uploads)
Performance Monitoring
Realtime Database
Remote Config

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

פוליפיל

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

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

‫Polyfills נדרשים

סביבות Polyfills
‫Safari 7,‏ 8 ו-9 ES Stable
צומת < 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

הצעות ל-polyfills

Polyfills רישיון
ES יציב MIT
fetch – ‏`cross-fetch` – הכי טוב לדפדפנים ישנים MIT
fetch – ‏`undici` – הכי טוב ל-Node.js MIT
base-64 MIT

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

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

מתקינים את 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.

עם Babel, לא צריך לדאוג לגבי הפוליפילים המדויקים שצריך לכלול. במקום זאת, מציינים את סביבות הדפדפן המינימליות שרוצים לתמוך בהן. לאחר מכן, 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.

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