Ir para o console

Ambientes compatíveis com o SDK do Firebase para JavaScript

Ambientes compatíveis

O SDK do Firebase para JavaScript é oficialmente compatível com os seguintes ambientes.

Navegadores

Produto do Firebase IE11 Edge Firefox Chrome Safari para iOS Safari
Analytics
Authentication
Cloud Firestore
(exceto
persistência)

(exceto
persistência)

(exceto
persistência
se o iOS for anterior à versão 10)
Cloud Functions
Cloud Messaging
(a partir da versão 17 do Edge)
Cloud Storage
Monitoramento de desempenho
Realtime Database
Configuração remota

Outros ambientes

Produto do Firebase React Native Node.js Extensões
do Chrome
Cordova
Analytics
Authentication
(consulte a observação)

(consulte a observação)

(consulte a observação)

(consulte a observação)
Cloud Firestore
(exceto
persistência)

(exceto
persistência)
Cloud Functions
Cloud Messaging
Cloud Storage
(exceto
uploads)
Monitoramento de desempenho
Realtime Database
Configuração remota

Polyfills

O SDK do Firebase para JavaScript foi criado com base nos últimos padrões da plataforma Web. Alguns navegadores e ambientes JavaScript mais antigos não são compatíveis com todos os recursos exigidos pelo Firebase. Se a compatibilidade com esses navegadores/ambientes for necessária, será preciso carregar os polyfills adequadamente.

As seções abaixo identificam a maioria dos polyfills que podem ser necessários.

Polyfills obrigatórios

Ambientes Polyfills
IE 11 ES Stable
Safari 7, 8 e 9 ES Stable
Node anterior à versão 6.5 ES Stable

Polyfills opcionais

Ambientes Polyfills Produtos do Firebase
  • IE 11
  • Node
  • Safari anterior à versão 10.1
  • iOS anterior à versão 10.3
fetch
  • Cloud Functions
  • Monitoramento de desempenho

Polyfills sugeridos

Polyfills Licença
ES Stable MIT
fetch MIT

Adicione polyfills ao seu aplicativo

Opção 1: (recomendado) usar o bundler integrado ao Babel

Se você estiver usando um bundler, integre-o ao Babel e ao @babel/preset-env (ambos em inglês) para receber os polyfills.

Use o guia de configuração interativo do Babel (em inglês) para saber como integrar o Babel ao seu bundler.

Com o Babel, você não precisa se preocupar com os polyfills exatos que serão incluídos. Em vez disso, você especifica os ambientes de navegador mínimos que precisam de compatibilidade. O Babel então adiciona os polyfills necessários para você e garante que os requisitos para compatibilidade de navegador sejam sempre cumpridos, mesmo se o Firebase ou seu próprio código começar a usar novos recursos de ES

Na página @babel/preset-env (em inglês) há informações detalhadas sobre as opções de configuração disponíveis para especificar objetivos de ambiente (opção targets) e adicionar polyfills (opção useBuiltIns).

Opção 2: (Não recomendado) adicionar polyfills manualmente

É possível adicionar polyfills manualmente usando suas bibliotecas favoritas de polyfills (por exemplo, core-js).

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

O core-js também fornece um arquivo de polyfill único que pode ser incluído diretamente na página HTML.

Essa opção pode ser uma maneira conveniente de gerenciar os polyfills se você não usa o Babel. No entanto, não recomendamos essa opção para aplicativos de produção, porque ela provavelmente incluirá polyfills desnecessários, o que aumentará o peso da página e, consequentemente, o tempo de carregamento dela.