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