محیطهای پشتیبانیشده
Firebase JavaScript SDK بهطور رسمی در محیطهای زیر پشتیبانی میشود.
مرورگرها
| محصول Firebase | Edge | Firefox | Chrome | iOS Safari | Safari |
|---|---|---|---|---|---|
| Firebase AI Logic ۱ | |||||
| Analytics | |||||
| App Check | |||||
| Authentication | |||||
| Cloud Firestore | (بهجز پایداری) |
(except persistence if iOS < 10) |
|||
| Cloud Functions | |||||
| Cloud Messaging | (Edge نسخه ۱۷ یا جدیدتر، بهجز تلفن همراه) |
||||
| Cloud Storage | |||||
| Firebase نصب | |||||
| Performance Monitoring | |||||
| Realtime Database | |||||
| Remote Config | |||||
| SQL Connect |
۱ Firebase AI Logic قبلاً «Vertex AI in Firebase» نامیده میشد.
محیطهای دیگر
| محصول Firebase | React Native | Node.js (18+) | Chrome افزونهها |
کوردووا |
|---|---|---|---|---|
| Firebase AI Logic ۱ | ||||
| App Check | (استفاده از ارائهدهنده سفارشی برای انجام تصدیق دستگاه بومی) |
(بااستفاده از ارائهدهنده سفارشی) |
||
| Analytics | ||||
| Authentication | (توجه را ببینید) |
(توجه را ببینید) |
(توجه را ببینید) |
(توجه را ببینید) |
| Cloud Firestore | (بهجز پایداری) |
(بهجز پایداری) |
||
| Cloud Functions | ||||
| Cloud Messaging | ||||
| Cloud Storage | (بهجز بارگذاریها) |
|||
| Firebase نصب | ||||
| Performance Monitoring | ||||
| Realtime Database | ||||
| Remote Config | ||||
| SQL Connect |
۱ Firebase AI Logic قبلاً «Vertex AI in Firebase» نامیده میشد.
شبیهسازهای مرورگر
کیت توسعه نرمافزار Firebase JavaScript براساس جدیدترین استانداردهای پلاتفرم وب ساخته شده است. برخیاز مرورگرهای قدیمیتر و محیطهای جاوا اسکریپت از همه ویژگیهای موردنیاز Firebase پشتیبانی نمیکنند. اگر باید از این مرورگرها/محیطها پشتیبانی کنید، باید شبیهسازهای مرورگر را مطابق با آن بار کنید.
بخشهای زیر اکثر شبیهسازهای مرورگری را که ممکن است نیاز داشته باشید شناسایی میکنند.
شبیهسازهای مرورگر الزامی
| محیطها | شبیهسازهای مرورگر |
|---|---|
| Safari نسخه ۷ و ۸ و ۹ | ES Stable |
| گره < ۱۰ | ES Stable |
شبیهسازهای مرورگر اختیاری
| محیطها | شبیهسازهای مرورگر | محصولات Firebase |
|---|---|---|
|
واکشی |
|
|
واکشی |
|
|
base-64 |
|
شبیهسازهای مرورگر پیشنهادی
| شبیهسازهای مرورگر | پروانه |
|---|---|
| ES پایدار | MIT |
| fetch - `cross-fetch` - بهترین گزینه برای مرورگرهای قدیمیتر | MIT |
| fetch - `undici` - بهترین برای Node.js | MIT |
| base-64 | MIT |
راهاندازی شبیهساز مرورگر لازم برای 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;
}
افزودن شبیهساز مرورگر در برنامه
گزینه ۱: (توصیهشده) استفاده از بستهساز ادغامشده با Babel
اگر از بستهبندیکننده استفاده میکنید، با Babel و @babel/preset-env ادغام کنید تا شبیهسازهای مرورگر را دریافت کنید.
برای آشنایی با نحوه ادغام Babel با بستهسازتان، از راهنمای راهاندازی تعاملی Babel استفاده کنید.
با Babel، لازم نیست نگران شبیهسازهای مرورگر دقیقی باشید که باید اضافه کنید. درعوض، حداقل محیطهای مرورگری را که باید پشتیبانی کنید مشخص میکنید. سپس Babel شبیهسازهای مرورگر لازم را برای شما اضافه میکند. Babel تضمین میکند که الزامات شما برای پشتیبانی مرورگر همیشه برآورده میشود، حتی اگر Firebase یا کد خودتان شروع به استفاده از ویژگیهای جدید ES کند.
@babel/preset-env اطلاعات دقیقی درباره گزینههای پیکربندی دردسترس برای مشخص کردن اهداف محیط (گزینه targets) و افزودن شبیهسازهای مرورگر (گزینه useBuiltIns) دارد.
گزینه ۲: (توصیه نمیشود) افزودن دستی شبیهسازهای مرورگر
میتوانید شبیهسازهای مرورگر را بهطور دستی بااستفاده از کتابخانههای شبیهساز مرورگر دلخواهتان (برای مثال، core-js) اضافه کنید.
import 'core-js/stable'
import 'cross-fetch/polyfill';
core-js همچنین
فایل شبیهساز مرورگر همهکارهای
ارائه میدهد که میتوانید مستقیماً در صفحه HTML اضافه کنید.
اگر از Babel استفاده نمیکنید، این گزینه میتواند روشی راحت برای مدیریت شبیهسازهای مرورگر باشد. بااینحال، این گزینه همهکاره را برای برنامههای تولید توصیه نمیکنیم زیرا احتمالاً شامل شبیهسازهای مرورگر غیرضروری است که سنگینی صفحه و درنتیجه زمان بار شدن صفحه را افزایش میدهد.