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