محیط‌های پشتیبانی‌شده برای کیت توسعه نرم‌افزار جاوا اسکریپت در Firebase

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

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
  • Safari نسخه قدیمی‌تر از ۱۰.۱
  • ‫iOS < 10.3
واکشی
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Performance Monitoring
  • Node < 18
واکشی
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Cloud Storage
  • React Native و Expo
base-64
  • Cloud Storage

شبیه‌سازهای مرورگر پیشنهادی

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