البيئات المتوافقة
تتوافق حزمة Firebase JavaScript SDK رسميًا مع البيئات التالية.
المتصفحات
| منتج Firebase | Edge | Firefox | Chrome | Safari على أجهزة iOS | Safari |
|---|---|---|---|---|---|
| Firebase AI Logic 1 | |||||
| Analytics | |||||
| App Check | |||||
| Authentication | |||||
| Cloud Firestore | (باستثناء البيانات الثابتة) |
(باستثناء البيانات الثابتة إذا كان إصدار iOS أقل من 10) |
|||
| Cloud Functions | |||||
| Cloud Messaging | (الإصدار 17 من Edge والإصدارات اللاحقة، باستثناء الأجهزة الجوّالة) |
||||
| Cloud Storage | |||||
| Firebase عمليات التثبيت | |||||
| Performance Monitoring | |||||
| Realtime Database | |||||
| Remote Config | |||||
| SQL Connect |
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 | ||||
| Cloud Messaging | ||||
| Cloud Storage | (باستثناء عمليات التحميل) |
|||
| Firebase عمليات التثبيت | ||||
| Performance Monitoring | ||||
| Realtime Database | ||||
| Remote Config | ||||
| SQL Connect |
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. ومع ذلك، لا ننصح باستخدام هذا الخيار الشامل للتطبيقات المخصّصة للإنتاج للتطبيقات لأنّه من المحتمل أن يتضمّن تعويضات غير ضرورية للميزات المفقودة من المتصفحات، ما يزيد من حجم الصفحة وبالتالي من وقت تحميلها.