البيئات المتوافقة
تتوافق حزمة Firebase JavaScript SDK رسميًا مع البيئات التالية.
المتصفحات
| منتج Firebase | Edge | Firefox | Chrome | Safari على أجهزة iOS | Safari |
|---|---|---|---|---|---|
| Firebase AI Logic 1 | |||||
| Analytics | |||||
| App Check | |||||
| Authentication | |||||
| Cloud Firestore | (باستثناء البيانات الثابتة) |
(باستثناء البيانات الثابتة إذا كان إصدار iOS أقل من 10) |
|||
| Cloud Functions | |||||
| Firebase عمليات التثبيت | |||||
| Cloud Messaging | (الإصدار 17 من Edge والإصدارات اللاحقة، باستثناء الأجهزة الجوّالة) |
||||
| Cloud Storage | |||||
| SQL Connect | |||||
| Performance Monitoring | |||||
| Realtime Database | |||||
| Remote Config |
1 Firebase AI Logic كان اسم Vertex AI in Firebase سابقًا "
بيئات أخرى
| منتج Firebase | React Native | Node.js (الإصدار 18 والإصدارات اللاحقة) | إضافات Chrome |
كوردوفا |
|---|---|---|---|---|
| Firebase AI Logic 1 | ||||
| App Check | (باستخدام موفِّر مخصّص لإجراء إثبات صحة الجهاز الأصلي) |
(باستخدام موفِّر مخصّص) |
||
| Analytics | ||||
| Authentication | (راجِع الملاحظة) |
(راجِع الملاحظة) |
(راجِع الملاحظة) |
(راجِع الملاحظة) |
| Cloud Firestore | (باستثناء البيانات الثابتة) |
(باستثناء البيانات الثابتة) |
||
| Cloud Functions | ||||
| SQL Connect | ||||
| Firebase عمليات التثبيت | ||||
| Cloud Messaging | ||||
| Cloud Storage | (باستثناء عمليات التحميل) |
|||
| Performance Monitoring | ||||
| Realtime Database | ||||
| Remote Config |
1 Firebase AI Logic كان اسم Vertex AI in Firebase سابقًا "
تعويض الميزات المفقودة من المتصفحات
تم إنشاء حزمة Firebase JavaScript SDK استنادًا إلى أحدث معايير منصة الويب. لا تتوافق بعض المتصفحات القديمة وبيئات JavaScript مع جميع الميزات التي تتطلبها Firebase. إذا كان عليك توفير الدعم لهذه المتصفحات أو البيئات، عليك تحميل تعويض الميزات المفقودة من المتصفحات وفقًا لذلك.
تحدّد الأقسام أدناه معظم تعويض الميزات المفقودة من المتصفحات التي قد تحتاج إليها.
تعويض الميزات المفقودة من المتصفحات المطلوبة
| البيئات | تعويض الميزات المفقودة من المتصفحات |
|---|---|
| Safari 7 و8 و9 | ES ثابت |
| Node < 10 | ES ثابت |
تعويض الميزات المفقودة من المتصفحات الاختيارية
| البيئات | تعويض الميزات المفقودة من المتصفحات | منتجات Firebase |
|---|---|---|
|
fetch |
|
|
fetch |
|
|
base-64 |
|
تعويض الميزات المفقودة من المتصفحات المقترَحة
| تعويض الميزات المفقودة من المتصفحات | الترخيص |
|---|---|
| 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;
}
إضافة تعويض الميزات المفقودة من المتصفحات في تطبيقك
الخيار 1: (مستحسَن) استخدام أداة تجميع متكاملة مع Babel
إذا كنت تستخدم أداة تجميع، يمكنك دمجها مع Babel و @babel/preset-env للحصول على تعويض الميزات المفقودة من المتصفحات.
استخدِم دليل الإعداد التفاعلي في Babel للتعرّف على كيفية دمج Babel مع أداة التجميع.
باستخدام Babel، لن تحتاج إلى تحديد تعويض الميزات المفقودة من المتصفحات التي يجب تضمينها. بدلاً من ذلك، يمكنك تحديد الحد الأدنى لبيئات المتصفحات التي عليك توفير الدعم لها. بعد ذلك، يضيف Babel تعويض الميزات المفقودة من المتصفحات اللازمة لك. يضمن Babel تلبية متطلباتك المتعلقة بتوافق المتصفحات دائمًا، حتى إذا بدأت Firebase أو الرمز البرمجي الخاص بك في استخدام ميزات ES الجديدة.
يحتوي @babel/preset-env على معلومات مفصّلة
حول خيارات الإعداد المتاحة لتحديد البيئات المستهدَفة (الخيار targets) وإضافة تعويض الميزات المفقودة من المتصفحات (الخيار useBuiltIns).
الخيار 2: (غير مستحسَن) إضافة تعويض الميزات المفقودة من المتصفحات يدويًا
يمكنك إضافة تعويض الميزات المفقودة من المتصفحات يدويًا باستخدام مكتبات تعويض الميزات المفقودة من المتصفحات المفضّلة لديك (مثل
core-js).
import 'core-js/stable'
import 'cross-fetch/polyfill';
core-js توفّر أيضًا
ملفًا شاملاً لتعويض الميزات المفقودة من المتصفحات
يمكنك تضمينه مباشرةً في صفحة HTML.
يمكن أن يكون هذا الخيار طريقة مناسبة لإدارة تعويض الميزات المفقودة من المتصفحات إذا كنت لا تستخدم Babel. ومع ذلك، لا ننصح باستخدام هذا الخيار الشامل للتطبيقات المخصّصة للإنتاج للتطبيقات لأنّه من المحتمل أن يتضمّن polyfills غير الضرورية، ما يزيد من حجم الصفحة وبالتالي وقت تحميل الصفحة.