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