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

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

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

Браузеры

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

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

Другие среды

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

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

(смотрите примечание )

(смотрите примечание )

(смотрите примечание )
Облачный пожарный магазин
(кроме
упорство)

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

Полифиллы

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

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

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

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

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

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

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

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