محیط های پشتیبانی شده برای Firebase JavaScript SDK

محیط های پشتیبانی شده

Firebase JavaScript SDK به طور رسمی در محیط های زیر پشتیبانی می شود.

مرورگرها

محصول Firebase لبه فایرفاکس کروم سافاری iOS سافاری
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+) کروم
برنامه های افزودنی
کوردووا
App Check
(با استفاده از یک ارائه دهنده سفارشی برای تأیید دستگاه بومی)

(با استفاده از یک ارائه دهنده سفارشی )
Analytics
Authentication
(نگاه کنید به یادداشت )

(نگاه کنید به یادداشت )

(نگاه کنید به یادداشت )

(نگاه کنید به یادداشت )
Cloud Firestore
(به جز
پشتکار)

(به جز
پشتکار)
Cloud Functions
تاسیسات Firebase
Cloud Messaging
Cloud Storage
(به جز
آپلودها)
Performance Monitoring
Realtime Database
Remote Config
Vertex AI in Firebase

پلی پرها

Firebase JavaScript SDK بر اساس آخرین استانداردهای پلت فرم وب ساخته شده است. برخی از مرورگرهای قدیمی و محیط های جاوا اسکریپت از همه ویژگی های مورد نیاز Firebase پشتیبانی نمی کنند. اگر باید از این مرورگرها/محیط‌ها پشتیبانی کنید، باید polyfills را متناسب با آن بارگیری کنید.

بخش‌های زیر بیشتر پلی‌فیل‌هایی را که ممکن است به آن‌ها نیاز داشته باشید، مشخص می‌کند.

پلی پرهای مورد نیاز

محیط ها پلی پرها
سافاری 7 و 8 و 9 ES پایدار
گره < 10 ES پایدار

پلی پرهای اختیاری

محیط ها پلی پرها محصولات Firebase
  • سافاری < 10.1
  • iOS < 10.3
واکشی
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Performance Monitoring
  • گره < 18
واکشی
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Cloud Storage
  • React Native و Expo
پایه-64
  • Cloud Storage

پلی فیل های پیشنهادی

پلی پرها مجوز
ES پایدار MIT
واکشی - «واکش متقابل» - بهترین برای مرورگرهای قدیمی MIT
fetch - `undici` - بهترین برای Node.js MIT
پایه-64 MIT

راه اندازی 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;
}

polyfills را در برنامه خود اضافه کنید

گزینه 1 : (توصیه می شود) از باندلر ادغام شده با Babel استفاده کنید

اگر از باندلر استفاده می‌کنید، با Babel و @babel/preset-env ادغام کنید تا polyfills دریافت کنید.

از راهنمای تنظیم تعاملی Babel برای یادگیری نحوه ادغام Babel با باندلر خود استفاده کنید.

با بابل، لازم نیست نگران پلی پرهای دقیقی باشید که باید اضافه شوند. در عوض، حداقل محیط های مرورگر را که باید پشتیبانی کنید، مشخص می کنید. سپس بابل پلی فیل های لازم را برای شما اضافه می کند. Babel تضمین می کند که الزامات شما برای پشتیبانی مرورگر همیشه برآورده می شود، حتی اگر Firebase یا کد شما شروع به استفاده از ویژگی های جدید ES کند.

@babel/preset-env اطلاعات دقیقی درباره گزینه‌های پیکربندی موجود برای تعیین اهداف محیطی ( targets گزینه‌ای) و افزودن polyfills (گزینه useBuiltIns ) دارد.

گزینه 2 : (توصیه نمی شود) polyfills را به صورت دستی اضافه کنید

می‌توانید با استفاده از کتابخانه‌های پلی‌فیل مورد علاقه‌تان (مثلاً core-js ) پلی‌فیل‌ها را به صورت دستی اضافه کنید.

import 'core-js/stable'
import 'cross-fetch/polyfill';

core-js همچنین یک فایل polyfill همه‌کاره ارائه می‌کند که می‌توانید مستقیماً در صفحه HTML قرار دهید.

اگر از Babel استفاده نمی کنید، این گزینه می تواند راهی مناسب برای مدیریت polyfills باشد. با این حال، ما این گزینه همه‌کاره را برای برنامه‌های تولیدی توصیه نمی‌کنیم ، زیرا احتمالاً شامل پلی‌پرهای غیرضروری است که وزن صفحه و در نتیجه زمان بارگذاری صفحه را افزایش می‌دهد.