Поддерживаемые среды
Официальная поддержка 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 ".
Полифилы
SDK Firebase JavaScript создан на основе новейших стандартов веб-платформы. Некоторые старые браузеры и среды JavaScript не поддерживают все функции, необходимые для Firebase. Если вам необходимо поддерживать эти браузеры/среды, вам потребуется загрузить соответствующие полифилы.
В разделах ниже перечислены большинство наполнителей, которые могут вам понадобиться.
Необходимые полифилы
| Окружающая среда | Полифилы |
|---|---|
| Сафари 7, 8 и 9 | ES Стабильный |
| Узел < 10 | ES Стабильный |
Дополнительные полифилы
| Окружающая среда | Полифилы | Продукты Firebase |
|---|---|---|
| принести |
|
| принести |
|
| база-64 |
|
Рекомендуемые полифилы
| Полифилы | Лицензия |
|---|---|
| ES Стабильный | MIT |
| fetch - `cross-fetch` - лучше всего подходит для старых браузеров. | MIT |
| fetch - `undici` - лучший вариант для Node.js | MIT |
| база-64 | MIT |
Необходимая настройка полифилов для 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 : (Рекомендуется) Использовать bundler, интегрированный с Babel.
Если вы используете сборщик, интегрируйте его с Babel и @babel/preset-env, чтобы получить полифилы.
Воспользуйтесь интерактивным руководством по настройке Babel, чтобы узнать, как интегрировать Babel с вашим сборщиком пакетов.
С Babel вам не нужно беспокоиться о точном наборе полифилов для включения. Вместо этого вы указываете минимальный набор браузерных сред, которые необходимо поддерживать. Затем Babel добавляет необходимые полифилы за вас. Babel гарантирует, что ваши требования к поддержке браузеров всегда будут выполнены, даже если Firebase или ваш собственный код начнут использовать новые функции Elasticsearch.
В файле @babel/preset-env содержится подробная информация о доступных параметрах конфигурации для указания целевых переменных окружения (опция targets ) и добавления полифилов (опция useBuiltIns ).
Вариант 2 : (Не рекомендуется) Добавляйте полифилы вручную.
Вы можете добавлять полифилы вручную, используя ваши любимые библиотеки полифилов (например, core-js ).
import 'core-js/stable'
import 'cross-fetch/polyfill';
core-js также предоставляет универсальный файл полифилла , который можно напрямую включить в HTML-страницу.
Этот вариант может быть удобным способом управления полифиллами, если вы не используете Babel. Однако мы не рекомендуем этот универсальный вариант для приложений, предназначенных для использования в рабочей среде, поскольку он, скорее всего, будет включать ненужные полифилы, что увеличит вес страницы и, следовательно, время ее загрузки.