البيئات المتوافقة مع حزمة تطوير البرامج (SDK) لمنصّة Firebase JavaScript

البيئات المتوافقة

تتوافق حزمة تطوير البرامج (SDK) Firebase JavaScript رسميًا مع البيئات التالية.

المتصفحات

منتج Firebase Edge Firefox Chrome Safari لنظام التشغيل iOS Safari
App Check
Analytics
Authentication
Cloud Firestore
(باستثناء
الثبات)

(باستثناء
الثبات
إذا كان الإصدار 10 من نظام التشغيل iOS أو إصدار أقدم)
Cloud Functions
Firebase عملية تثبيت
Cloud Messaging
(الإصدار 17 من Edge أو الإصدارات اللاحقة، باستثناء الأجهزة الجوّالة)
Cloud Storage
Performance Monitoring
Realtime Database
Remote Config
Vertex AI in Firebase

بيئات أخرى

منتج Firebase React Native ‫Node.js (18+) إضافات
Chrome
كوردوفا
App Check
(استخدام موفِّر مخصّص لمصادقة الجهاز الأصلي)

(باستخدام مقدّم خدمة مخصّص)
Analytics
Authentication
(راجِع ملاحظة)

(يُرجى الاطّلاع على الملاحظة)

(راجِع ملاحظة)

(راجِع ملاحظة)
Cloud Firestore
(باستثناء
الثبات)

(باستثناء
الثبات)
Cloud Functions
Firebase عملية تثبيت
Cloud Messaging
Cloud Storage
(باستثناء
عمليات التحميل)
Performance Monitoring
Realtime Database
Remote Config
Vertex AI in Firebase

تعويض الميزات المفقودة من المتصفحات

تم تصميم حزمة SDK لنظام التشغيل Firebase JavaScript استنادًا إلى أحدث معايير منصة الويب. لا تتوافق بعض المتصفحات القديمة وبيئات JavaScript مع جميع الميزات التي تتطلّبها Firebase. إذا كان عليك توفير هذه المتصفّحات/البيئات، يجب تحميل مكونات polyfill وفقًا لذلك.

تحدّد الأقسام التالية معظم رموز polyfill التي قد تحتاج إليها.

الإضافات المطلوبة لpolyfill

البيئات الملء التلقائي
الإصدار 7 و8 و9 من Safari الإسطبل الإسباني
عدد العقد أقل من 10 الإصدار الثابت من اللغة الإسبانية

رموز polyfill اختيارية

البيئات العناصر القابلة للاستبدال منتجات Firebase
  • الإصدار 10.1 من Safari أو الإصدارات الأقدم
  • الإصدار 10.3 أو إصدار أقدم من نظام التشغيل iOS
fetch
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Performance Monitoring
  • العقدة < 18
fetch
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Cloud Storage
  • React Native وExpo
base-64
  • Cloud Storage

الإضافات المتوافقة مع الإصدارات القديمة المقترَحة

العناصر القابلة للاستبدال الترخيص
ES الإصدار الثابت MIT
الجلب - "الجلب المتقاطع" - الأفضل للمتصفّحات القديمة MIT
fetch - ‏`undici` - الأفضل لـ Node.js MIT
base-64 MIT

الإعداد المطلوب لـ Polyfill في 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;
}

إضافة polyfills في تطبيقك

الخيار 1: (إجراء يُنصح به) استخدام أداة تجميع مدمجة مع Babel

إذا كنت تستخدم أداة تجميع، يمكنك دمجها مع Babel و @babel/preset-env للحصول على polyfills.

استخدِم دليل الإعداد التفاعلي في Babel للتعرّف على كيفية دمج Babel مع أداة تجميع الحِزم.

باستخدام Babel، لا داعي للقلق بشأن أشكال polyfill الدقيقة التي يجب تضمينها. بدلاً من ذلك، يمكنك تحديد الحد الأدنى من بيئات المتصفّحات التي تحتاج إلى توفيرها. بعد ذلك، يضيف Babel وحدات polyfill اللازمة نيابةً عنك. يضمن Babel استيفاء متطلبات التوافق مع المتصفّحات دائمًا، حتى إذا بدأ Firebase أو رمزك البرمجي باستخدام ميزات ES الجديدة.

يحتوي @babel/preset-env على معلومات detailed حول خيارات الضبط المتاحة لتحديد بيئة استهداف (الخيار targets) وإضافة polyfills (الخيار useBuiltIns).

الخيار 2: (غير مستحسن) إضافة polyfills يدويًا

يمكنك إضافة polyfills يدويًا باستخدام مكتبات polyfill المفضّلة لديك (مثل core-js).

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

توفّر core-js أيضًا ملفًا شاملاً لعناصر الربط يمكنك تضمينه مباشرةً في صفحة HTML.

يمكن أن يكون هذا الخيار طريقة ملائمة لإدارة رموز polyfill إذا كنت لا تستخدم Babel. ومع ذلك، لا ننصح باستخدام هذا الخيار الشامل في التطبيقات المخصّصة للإصدار العلني لأنّه سيتضمّن على الأرجح مكونات polyfill غير ضرورية، ما يزيد من ملف برمجي الصفحة وبالتالي وقت تحميلها.