סביבות נתמכות
ערכת ה-SDK של Firebase JavaScript נתמכת באופן רשמי בסביבות הבאות.
דפדפנים
| מוצר Firebase | Edge | Firefox | Chrome | iOS Safari | Safari |
|---|---|---|---|---|---|
| Firebase AI Logic 1 | |||||
| Analytics | |||||
| App Check | |||||
| Authentication | |||||
| Cloud Firestore | (למעט התמדה) |
(חוץ מ-persistence אם iOS < 10) |
|||
| Cloud Functions | |||||
| Cloud Messaging | (Edge 17 ואילך, למעט בניידים) |
||||
| Cloud Storage | |||||
| Firebase התקנות | |||||
| Performance Monitoring | |||||
| Realtime Database | |||||
| Remote Config | |||||
| SQL Connect |
1 Firebase AI Logic נקרא בעבר "Vertex AI in Firebase".
בסביבות אחרות
| מוצר Firebase | React Native | Node.js (גרסה 18 ומעלה) | תוספים ל-Chrome |
קורדובה |
|---|---|---|---|---|
| Firebase AI Logic 1 | ||||
| App Check | (באמצעות ספק בהתאמה אישית לאימות מכשיר מקורי) |
(באמצעות ספק בהתאמה אישית) |
||
| Analytics | ||||
| Authentication | (ראו הערה) |
(ראו הערה) |
(ראו הערה) |
(ראו הערה) |
| Cloud Firestore | (למעט התמדה) |
(למעט התמדה) |
||
| Cloud Functions | ||||
| Cloud Messaging | ||||
| Cloud Storage | (למעט העלאות) |
|||
| Firebase התקנות | ||||
| Performance Monitoring | ||||
| Realtime Database | ||||
| Remote Config | ||||
| SQL Connect |
1 Firebase AI Logic נקרא בעבר "Vertex AI in Firebase".
Polyfills
Firebase JavaScript SDK מבוסס על הסטנדרטים העדכניים ביותר של פלטפורמת האינטרנט. חלק מהדפדפנים וסביבות ה-JavaScript הישנים יותר לא תומכים בכל התכונות שנדרשות ל-Firebase. אם אתם חייבים לתמוך בדפדפנים או בסביבות האלה, אתם צריכים לטעון פוליפילים בהתאם.
בקטעים הבאים מפורטים רוב ה-polyfills שאולי תצטרכו.
רכיבי polyfill נדרשים
| סביבות | Polyfills |
|---|---|
| Safari 7, 8 ו-9 | ES Stable |
| Node < 10 | ES Stable |
Polyfills אופציונליים
| סביבות | Polyfills | מוצרי Firebase |
|---|---|---|
|
fetch |
|
|
fetch |
|
|
base-64 |
|
הצעות ל-polyfill
| Polyfills | רישיון |
|---|---|
| ES Stable | MIT |
| fetch – `cross-fetch` – הכי מתאים לדפדפנים ישנים יותר | MIT |
| fetch – `undici` – הכי מתאים ל-Node.js | MIT |
| base-64 | MIT |
הגדרת Polyfill נדרשת ל-React Native ול-Expo
ב-React Native וב-Expo, אם אתם מעלים מחרוזת בקידוד Base64, אתם צריכים לבצע את הפעולות הבאות:
מתקינים את 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 עם ה-bundler, אפשר להשתמש במדריך ההגדרה האינטראקטיבי של Babel.
עם Babel, אתם לא צריכים לדאוג לגבי ה-polyfills המדויקים שצריך לכלול. במקום זאת, אתם מציינים את סביבות הדפדפן המינימליות שאתם צריכים לתמוך בהן. לאחר מכן, 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.
האפשרות הזו יכולה להיות דרך נוחה לניהול polyfills אם אתם לא משתמשים ב-Babel. עם זאת, אנחנו לא ממליצים על האפשרות הזו של הכל-באחד לאפליקציות בסביבת ייצור, כי סביר להניח שהיא תכלול פוליפילים מיותרים, שיגדילו את משקל הדף וכתוצאה מכך את זמן הטעינה של הדף.