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

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

کیت توسعه نرم‌افزار (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 ای‌اس استیبل

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

محیط‌ها پلی‌فیل‌ها محصولات فایربیس
  • سافاری < 10.1
  • آی‌او‌اس < 10.3
واکشی کردن
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Performance Monitoring
  • گره < 18
واکشی کردن
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Cloud Storage
  • ری‌اکت نیتیو و اکسپو
پایه-۶۴
  • Cloud Storage

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

پلی‌فیل‌ها مجوز
ای‌اس استیبل دانشگاه ام آی تی
واکشی - `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های غیرضروری خواهد بود که باعث افزایش حجم صفحه و در نتیجه زمان بارگذاری صفحه می‌شود.