Поддерживаемые среды для Firebase JavaScript SDK

Поддерживаемые среды

Firebase JavaScript SDK официально поддерживается в следующих средах:

Браузеры

Продукт Firebase Edge Firefox Chrome Safari для iOS Safari
Firebase AI Logic 1
Analytics
App Check
Authentication
Cloud Firestore
(кроме
постоянства)

(кроме
persistence
для iOS < 10)
Cloud Functions
Cloud Messaging
(Edge 17 и более поздние версии, кроме мобильных)
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.

Полизаполнения

SDK Firebase JavaScript создан на основе новейших стандартов веб-платформы. Некоторые старые браузеры и среды JavaScript не поддерживают все функции, необходимые для Firebase. Если вам нужно поддерживать эти браузеры/среды, вам необходимо загрузить соответствующие полифилы.

Ниже перечислены наиболее распространенные полифилы.

Необходимые полифилы

Среды Полифилы
Safari 7, 8 и 9 ES Stable
Узел < 10 ES Stable

Необязательные полифилы

Среды Полифилы Продукты Firebase
  • Safari < 10.1
  • iOS < 10.3
fetch
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Performance Monitoring
  • Node < 18
fetch
  • 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

Если вы загружаете строку в кодировке Base64 для React Native и Expo, выполните следующие действия:

Установите 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 гарантирует, что ваши требования к поддержке браузеров всегда будут соблюдаться, даже если Firebase или ваш собственный код начнут использовать новые функции ES.

В документации по @babel/preset-env подробно описаны доступные параметры конфигурации для указания целевых сред (параметр targets) и добавления полифилов (параметр useBuiltIns).

Вариант 2. (Не рекомендуется) Добавьте полифилы вручную.

Вы можете добавить полифилы вручную, используя свои любимые библиотеки полифилов (например, core-js).

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

core-js также предоставляет универсальный файл полифила, который можно напрямую включить в HTML-страницу.

Этот вариант может быть удобен для управления полифилами, если вы не используете Babel. Однако мы не рекомендуем использовать этот вариант для рабочих приложений, поскольку он может включать ненужные полифилы, которые увеличивают размер страницы и, следовательно, время загрузки страницы.