محیطهای پشتیبانیشده
کیت توسعه نرمافزار (SDK) JavaScript Firebase رسماً در محیطهای زیر پشتیبانی میشود.
مرورگرها
| محصول فایربیس | لبه | فایرفاکس | کروم | سافاری در iOS | سافاری |
|---|---|---|---|---|---|
| منطق هوش مصنوعی فایربیس ۱ | |||||
| Analytics | |||||
| App Check | |||||
| Authentication | |||||
| Cloud Firestore | (به جز پشتکار) | (به جز پشتکار اگر iOS < 10) | |||
| Cloud Functions | |||||
| نصب Firebase | |||||
| Cloud Messaging | (لبه ۱۷+، به جز موبایل) | ||||
| Cloud Storage | |||||
| Data Connect | |||||
| Performance Monitoring | |||||
| Realtime Database | |||||
| Remote Config |
منطق هوش مصنوعی فایربیس قبلاً « هوش مصنوعی ورتکس در فایربیس » نامیده میشد.
محیطهای دیگر
| محصول فایربیس | واکنش بومی | Node.js (18+) | کروم افزونهها | کوردووا |
|---|---|---|---|---|
| منطق هوش مصنوعی فایربیس ۱ | ||||
| App Check | (با استفاده از یک ارائه دهنده سفارشی برای انجام تأیید هویت دستگاه بومی) | (با استفاده از یک ارائه دهنده سفارشی ) | ||
| Analytics | ||||
| Authentication | (به یادداشت مراجعه کنید) | (به یادداشت مراجعه کنید) | (به یادداشت مراجعه کنید) | (به یادداشت مراجعه کنید) |
| Cloud Firestore | (به جز پشتکار) | (به جز پشتکار) | ||
| Cloud Functions | ||||
| Data Connect | ||||
| نصب Firebase | ||||
| Cloud Messaging | ||||
| Cloud Storage | (به جز آپلودها) | |||
| Performance Monitoring | ||||
| Realtime Database | ||||
| Remote Config |
منطق هوش مصنوعی فایربیس قبلاً « هوش مصنوعی ورتکس در فایربیس » نامیده میشد.
پلیفیلها
کیت توسعه نرمافزاری جاوا اسکریپت فایربیس Firebase JavaScript SDK) بر اساس آخرین استانداردهای پلتفرم وب ساخته شده است. برخی از مرورگرها و محیطهای جاوا اسکریپت قدیمی از تمام ویژگیهای مورد نیاز فایربیس پشتیبانی نمیکنند. اگر مجبور به پشتیبانی از این مرورگرها/محیطها هستید، باید پلیفیلها (polyfills) را متناسب با آن بارگذاری کنید.
بخشهای زیر اکثر پلیفیلهایی که ممکن است نیاز داشته باشید را مشخص میکنند.
پلیفیلهای مورد نیاز
| محیطها | پلیفیلها |
|---|---|
| سافاری ۷ و ۸ و ۹ | ایاس استیبل |
| گره < 10 | ایاس استیبل |
پلیفیلهای اختیاری
| محیطها | پلیفیلها | محصولات فایربیس |
|---|---|---|
| واکشی کردن |
|
| واکشی کردن |
|
| پایه-۶۴ |
|
پلیفیلهای پیشنهادی
| پلیفیلها | مجوز |
|---|---|
| ایاس استیبل | دانشگاه ام آی تی |
| واکشی - `cross-fetch` - بهترین گزینه برای مرورگرهای قدیمی | دانشگاه ام آی تی |
| fetch - `undici` - بهترین گزینه برای Node.js | دانشگاه ام آی تی |
| پایه-۶۴ | دانشگاه ام آی تی |
تنظیمات مورد نیاز برای Polyfill برای React Native و Expo
برای 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;
}
اضافه کردن polyfillها به برنامه شما
گزینه ۱ : (توصیه میشود) از bundler یکپارچه با Babel استفاده کنید
اگر از bundler استفاده میکنید، برای دریافت polyfillها، آن را با Babel و @babel/preset-env ادغام کنید.
برای یادگیری نحوه ادغام Babel با bundler خود، از راهنمای راهاندازی تعاملی Babel استفاده کنید.
با Babel، لازم نیست نگران پلیفیلهای دقیقی که باید اضافه کنید باشید. در عوض، شما حداقل محیطهای مرورگری را که باید پشتیبانی شوند مشخص میکنید. سپس Babel پلیفیلهای لازم را برای شما اضافه میکند. Babel تضمین میکند که الزامات شما برای پشتیبانی مرورگر همیشه برآورده میشود، حتی اگر Firebase یا کد خودتان شروع به استفاده از ویژگیهای جدید ES کند.
@babel/preset-env اطلاعات دقیقی در مورد گزینههای پیکربندی موجود برای تعیین اهداف محیطی (option targets ) و افزودن چندمنظورهها (option useBuiltIns ) دارد.
گزینه ۲ : (توصیه نمیشود) اضافه کردن دستی پلیفیلها
شما میتوانید با استفاده از کتابخانههای polyfill مورد علاقهتان (مثلاً core-js ) به صورت دستی polyfillها را اضافه کنید.
import 'core-js/stable'
import 'cross-fetch/polyfill';
core-js همچنین یک فایل چندمنظوره همهکاره ارائه میدهد که میتوانید مستقیماً در صفحه HTML آن را وارد کنید.
اگر از Babel استفاده نمیکنید، این گزینه میتواند راهی مناسب برای مدیریت polyfillها باشد. با این حال، ما این گزینه همهکاره را برای برنامههای کاربردی توصیه نمیکنیم زیرا احتمالاً شامل polyfillهای غیرضروری خواهد بود که باعث افزایش حجم صفحه و در نتیجه زمان بارگذاری صفحه میشود.