Поддерживаемые среды
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 ».
Полифиллы
Firebase JavaScript SDK разработан на основе новейших стандартов веб-платформы. Некоторые старые браузеры и среды JavaScript поддерживают не все функции, необходимые Firebase. Если вам необходима поддержка этих браузеров/сред, необходимо загрузить соответствующие полифиллы.
В разделах ниже описано большинство полифиллов, которые могут вам понадобиться.
Требуемые полифиллы
Окружающая среда | Полифиллы |
---|---|
Сафари 7, 8 и 9 | ES Стабильный |
Узел < 10 | ES Стабильный |
Дополнительные полифиллы
Окружающая среда | Полифиллы | Продукты Firebase |
---|---|---|
| принести |
|
| принести |
|
| база-64 |
|
Предлагаемые полифиллы
Полифиллы | Лицензия |
---|---|
ES Стабильный | Массачусетский технологический институт |
fetch - `cross-fetch` - лучше всего подходит для старых браузеров | Массачусетский технологический институт |
fetch - `undici` - лучше всего подходит для Node.js | Массачусетский технологический институт |
база-64 | Массачусетский технологический институт |
Необходимая настройка полифилла для 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 : (рекомендуется) использовать сборщик, интегрированный с 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. Однако мы не рекомендуем этот универсальный вариант для производственных приложений, поскольку он, скорее всего, будет включать ненужные полифилы, что увеличит вес страницы и, следовательно, время её загрузки.