البيئات المتوافقة
تتوافق حزمة تطوير البرامج (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 |
---|---|---|
|
fetch |
|
|
fetch |
|
|
base-64 |
|
الإضافات المتوافقة مع الإصدارات القديمة المقترَحة
العناصر القابلة للاستبدال | الترخيص |
---|---|
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 غير ضرورية، ما يزيد من ملف برمجي الصفحة وبالتالي وقت تحميلها.