Entornos compatibles con el SDK de JavaScript de Firebase

Entornos compatibles

El SDK de JavaScript de Firebase es oficialmente compatible con los siguientes entornos.

Navegadores

Producto base de fuego Borde Firefox Cromo Safari en iOS Safari
Verificación de aplicaciones
Analítica
Autenticación
Tienda de fuego en la nube
(excepto
persistencia)

(excepto
persistencia
si iOS <10)
Funciones de la nube
Instalaciones de base de fuego
Mensajería en la nube
(Edge 17+, excepto móvil)
Almacenamiento en la nube
Supervisión del rendimiento
Base de datos en tiempo real
Configuración remota

Otros ambientes

Producto base de fuego Reaccionar nativo Nodo.js Cromo
Extensiones
Córdoba
Verificación de aplicaciones
(usando un proveedor personalizado para realizar la certificación del dispositivo nativo)

(usando un proveedor personalizado )
Analítica
Autenticación
(ver nota )

(ver nota )

(ver nota )

(ver nota )
Tienda de fuego en la nube
(excepto
persistencia)

(excepto
persistencia)
Funciones de la nube
Instalaciones de base de fuego
Mensajería en la nube
Almacenamiento en la nube
(excepto
cargas)
Supervisión del rendimiento
Base de datos en tiempo real
Configuración remota

Polirellenos

El SDK de JavaScript de Firebase se basa en los últimos estándares de la plataforma web. Algunos navegadores y entornos de JavaScript más antiguos no admiten todas las funciones requeridas por Firebase. Si debe admitir estos navegadores/entornos, entonces deberá cargar los polyfills en consecuencia.

Las secciones siguientes identifican la mayoría de los polyfills que podría necesitar.

Polirellenos requeridos

Ambientes Polirellenos
Safaris 7 y 8 y 9 ES estable
Nodo < 6,5 ES estable

Polyfills opcionales

Ambientes Polirellenos Productos de base de fuego
  • Nodo
  • Safari < 10.1
  • iOS < 10.3
buscar
  • Funciones de la nube
  • Supervisión del rendimiento
  • Reaccionar nativo y exposición
base-64
  • Almacenamiento en la nube

Polyfills sugeridos

Polirellenos Licencia
ES estable MIT
buscar MIT
base-64 MIT

Configuración de Polyfill requerida para React Native y Expo

Para React Native y Expo, si está cargando una cadena codificada en base 64, debe hacer lo siguiente:

Instale base-64 desde npm:

npm install base-64

Importe decode desde base-64 y adjúntela al alcance global como atob para que Cloud Storage pueda acceder a ella.

import { decode } from 'base-64';

if(typeof atob === 'undefined') {
  global.atob = decode;
}

Agregue polyfills en su aplicación

Opción 1 : (recomendado) Usar paquete integrado con Babel

Si está utilizando un paquete, intégrelo con Babel y @babel/preset-env para obtener polyfills.

Utilice la guía de configuración interactiva de Babel para aprender cómo integrar Babel con su paquete.

Con Babel, no necesitas preocuparte por los polirellenos exactos que debes incluir. En su lugar, usted especifica los entornos de navegador mínimos que necesita admitir. Luego, Babel agrega los polyfills necesarios para usted. Babel garantiza que siempre se cumplan sus requisitos de compatibilidad con el navegador, incluso si Firebase o su propio código comienzan a utilizar nuevas funciones de ES.

@babel/preset-env tiene información detallada sobre las opciones de configuración disponibles para especificar objetivos de entorno (opción targets ) y agregar polyfills (opción useBuiltIns ).

Opción 2 : (No recomendado) Agregar polirellenos manualmente

Puede agregar polyfills manualmente utilizando sus bibliotecas de polyfill favoritas (por ejemplo, core-js ).

import 'core-js/stable'
import 'cross-fetch/polyfill';

core-js también proporciona un archivo polyfill todo en uno que puede incluir directamente en la página HTML.

Esta opción puede ser una forma conveniente de administrar polyfills si no usa Babel. Sin embargo, no recomendamos esta opción todo en uno para aplicaciones de producción, ya que probablemente incluirá polyfills innecesarios, lo que aumenta el peso de la página y, por tanto, el tiempo de carga.