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

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

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

Браузеры

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

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

Другие среды

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

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

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

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

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

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

Полифилы

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

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

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

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

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

Окружающая среда Полифилы Продукты Firebase
  • Сафари < 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 Стабильный Массачусетский технологический институт
fetch — `cross-fetch` – лучше всего подходит для старых браузеров Массачусетский технологический институт
fetch — `undici` — лучше всего подходит для Node.js Массачусетский технологический институт
база-64 Массачусетский технологический институт

Необходимая настройка Polyfill для React Native и Expo

Для React Native и Expo, если вы загружаете строку в кодировке Base64, вам необходимо сделать следующее:

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

,

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

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

Браузеры

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

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

Другие среды

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

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

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

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

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

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

Полифилы

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

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

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

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

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

Окружающая среда Полифилы Продукты Firebase
  • Сафари < 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 Стабильный Массачусетский технологический институт
fetch — `cross-fetch` – лучше всего подходит для старых браузеров Массачусетский технологический институт
fetch — `undici` — лучше всего подходит для Node.js Массачусетский технологический институт
база-64 Массачусетский технологический институт

Необходимая настройка Polyfill для React Native и Expo

Для React Native и Expo, если вы загружаете строку в кодировке Base64, вам необходимо сделать следующее:

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