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

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

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

Браузеры

Продукт Firebase Край Firefox Хром iOS Safari Сафари
Firebase AI Logic 1
Analytics
App Check
Authentication
Cloud Firestore
(кроме
упорство)

(кроме
упорство
(если iOS < 10)
Cloud Functions
Установка Firebase
Cloud Messaging
(Edge 17+, кроме мобильных устройств)
Cloud Storage
Data Connect
Performance Monitoring
Realtime Database
Remote Config

1. Ранее Firebase AI Logic назывался " Vertex AI in Firebase ".

Другие среды

Продукт Firebase React Native Node.js (18+) Хром
Расширения
Кордова
Firebase AI Logic 1
App Check
(использование собственного поставщика для аттестации нативных устройств)

(с использованием собственного поставщика )
Analytics
Authentication
(см. примечание )

(см. примечание )

(см. примечание )

(см. примечание )
Cloud Firestore
(кроме
упорство)

(кроме
упорство)
Cloud Functions
Data Connect
Установка Firebase
Cloud Messaging
Cloud Storage
(кроме
(загрузки)
Performance Monitoring
Realtime Database
Remote Config

1. Ранее Firebase AI Logic назывался " Vertex AI in Firebase ".

Полифилы

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

В разделах ниже перечислены большинство наполнителей, которые могут вам понадобиться.

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

Окружающая среда Полифилы
Сафари 7, 8 и 9 ES Стабильный
Узел < 10 ES Стабильный

Дополнительные полифилы

Окружающая среда Полифилы Продукты Firebase
  • Safari < 10.1
  • iOS < 10.3
принести
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Performance Monitoring
  • Узел < 18
принести
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Cloud Storage
  • React Native и Expo
база-64
  • Cloud Storage

Рекомендуемые полифилы

Полифилы Лицензия
ES Стабильный MIT
fetch - `cross-fetch` - лучше всего подходит для старых браузеров. MIT
fetch - `undici` - лучший вариант для Node.js MIT
база-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 : (Рекомендуется) Использовать bundler, интегрированный с Babel.

Если вы используете сборщик, интегрируйте его с Babel и @babel/preset-env, чтобы получить полифилы.

Воспользуйтесь интерактивным руководством по настройке Babel, чтобы узнать, как интегрировать Babel с вашим сборщиком пакетов.

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

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

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

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

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

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

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