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

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

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

Браузеры

Продукт Firebase Край Fire Fox Хром iOS-сафари Сафари
Проверка приложения
Аналитика
Аутентификация
Облако Firestore
(кроме
упорство)

(кроме
упорство
если iOS < 10)
Облачные функции
Установки Firebase
Облачный обмен сообщениями
(Edge 17+, кроме мобильных)
Облачное хранилище
Мониторинг производительности
База данных реального времени
Удаленная конфигурация

Другие среды

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

(используя пользовательский провайдер )
Аналитика
Аутентификация
(см. примечание )

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

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

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

(кроме
упорство)
Облачные функции
Установки Firebase
Облачный обмен сообщениями
Облачное хранилище
(кроме
загрузки)
Мониторинг производительности
База данных реального времени
Удаленная конфигурация

Полифиллы

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

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

Требуемые полифиллы

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

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

Окружающая среда Полифиллы Продукты Firebase
  • Узел
  • Сафари < 10,1
  • iOS < 10.3
принести
  • Облачные функции
  • Мониторинг производительности
  • React Native и выставка
база-64
  • Облачное хранилище

Предлагаемые полифиллы

Полифиллы Лицензия
Стабильный ES Массачусетский технологический институт
принести Массачусетский технологический институт
база-64 Массачусетский технологический институт

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

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

Установите base-64 из npm:

npm install base-64

Импортируйте decode из base-64 и присоедините его к глобальной области как atob , чтобы облачное хранилище могло получить к нему доступ.

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