Ambientes compatíveis com o SDK JavaScript do Firebase

Ambientes suportados

O SDK JavaScript do Firebase é oficialmente compatível com os ambientes a seguir.

Navegadores

Produto Firebase Borda Raposa de fogo cromada Safári iOS Safári
Verificação de aplicativo
Análise
Autenticação
Cloud Fire Store
(exceto
persistência)

(exceto
persistência
se iOS <10)
Funções de nuvem
Instalações do Firebase
Mensagens na nuvem
(Edge 17+, exceto celular)
Armazenamento na núvem
Monitoramento de desempenho
Banco de dados em tempo real
Configuração remota

Outros ambientes

Produto Firebase Reagir nativo Node.js cromada
Extensões
Córdoba
Verificação de aplicativo
(usando um provedor personalizado para fazer atestado de dispositivo nativo)

(usando um provedor personalizado )
Análise
Autenticação
(Veja a nota )

(Veja a nota )

(Veja a nota )

(Veja a nota )
Cloud Fire Store
(exceto
persistência)

(exceto
persistência)
Funções de nuvem
Instalações do Firebase
Mensagens na nuvem
Armazenamento na núvem
(exceto
uploads)
Monitoramento de desempenho
Banco de dados em tempo real
Configuração remota

Polifills

O SDK JavaScript do Firebase foi desenvolvido com base nos padrões mais recentes da plataforma web. Alguns navegadores e ambientes JavaScript mais antigos não oferecem suporte a todos os recursos exigidos pelo Firebase. Se você precisar oferecer suporte a esses navegadores/ambientes, será necessário carregar os polyfills de acordo.

As seções abaixo identificam a maioria dos polyfills que você pode precisar.

Polyfills necessários

Ambientes Polifills
Safári 7 e 8 e 9 ES Estável
Nó <6,5 ES Estável

Polyfills opcionais

Ambientes Polifills Produtos Firebase
  • Safári <10.1
  • iOS <10.3
buscar
  • Funções de nuvem
  • Monitoramento de desempenho
  • Reagir Nativo e Expo
base-64
  • Armazenamento na núvem

Polyfills sugeridos

Polifills Licença
ES Estável MIT
buscar MIT
base-64 MIT

Configuração necessária do Polyfill para React Native e Expo

Para React Native e Expo, se você estiver enviando uma string codificada em base 64, precisará fazer o seguinte:

Instale a base 64 do npm:

npm install base-64

Importe decode da base-64 e anexe-a ao escopo global como atob para que o Cloud Storage possa acessá-la.

import { decode } from 'base-64';

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

Adicione polyfills em seu aplicativo

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

Se você estiver usando um bundler, integre com Babel e @babel/preset-env para obter polyfills.

Use o guia de configuração interativo do Babel para aprender como integrar o Babel ao seu bundler.

Com o Babel, você não precisa se preocupar com os polyfills exatos a serem incluídos. Em vez disso, você especifica os ambientes mínimos de navegador aos quais precisa oferecer suporte. Babel então adiciona os polyfills necessários para você. Babel garante que seus requisitos de suporte ao navegador sejam sempre atendidos, mesmo que o Firebase ou seu próprio código comece a usar novos recursos do ES.

@babel/preset-env possui informações detalhadas sobre as opções de configuração disponíveis para especificar alvos de ambiente (opção targets ) e adicionar polyfills (opção useBuiltIns ).

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

Você pode adicionar polyfills manualmente usando suas bibliotecas polyfill favoritas (por exemplo, core-js ).

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

core-js também fornece um arquivo polyfill completo que você pode incluir diretamente na página HTML.

Esta opção pode ser uma maneira conveniente de gerenciar polyfills se você não usa o Babel. No entanto, não recomendamos esta opção multifuncional para aplicativos de produção, pois provavelmente incluirá polyfills desnecessários, o que aumenta o peso da página e, portanto, o tempo de carregamento da página.