Поддерживаемые среды
Firebase JavaScript SDK официально поддерживается в следующих средах.
Браузеры
Продукт Firebase | Край | Firefox | Хром | iOS-сафари | Сафари |
---|---|---|---|---|---|
Firebase AI Логика 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 | Реагировать нативно | Node.js (18+) | Хром Расширения | Кордова |
---|---|---|---|---|
Firebase AI Логика 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. Однако мы не рекомендуем этот вариант «все в одном» для производственных приложений, поскольку он, скорее всего, будет включать ненужные полифилы, что увеличит вес страницы и, следовательно, время ее загрузки.