Ambientes compatíveis
O SDK do Firebase para JavaScript é oficialmente compatível com os ambientes a seguir.
Navegadores
Produto Firebase | Borda | Raposa de fogo | cromada | iOS Safari | Safári |
---|---|---|---|---|---|
Análise | |||||
Autenticação | |||||
Cloud Firestore | (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 |
---|---|---|---|---|
Análise | ||||
Autenticação | (ver Nota ) | (ver Nota ) | (ver Nota ) | (ver Nota ) |
Cloud Firestore | (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 |
Polyfills
O SDK do Firebase JavaScript foi desenvolvido com os padrões mais recentes da plataforma da Web. Alguns navegadores e ambientes JavaScript mais antigos não são compatíveis com todos os recursos exigidos pelo Firebase. Se você precisar oferecer suporte a esses navegadores/ambientes, precisará carregar polyfills de acordo.
As seções abaixo identificam a maioria dos polyfills que você pode precisar.
Polyfills obrigatórios
Ambientes | Polyfills |
---|---|
Safari 7, 8 e 9 | ES Estável |
Nó < 6,5 | ES Estável |
Polyfills opcionais
Ambientes | Polyfills | Produtos do Firebase |
---|---|---|
| buscar |
|
| base-64 |
|
Polyfills sugeridos
Polyfills | Licença |
---|---|
ES Estável | MIT |
buscar | MIT |
base-64 | MIT |
Configuração Polyfill necessária para React Native e Expo
Para React Native e Expo, se você estiver carregando uma string codificada em base 64, será necessário fazer o seguinte:
Instale base-64 do npm:
npm install base-64
Importe a 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 de navegador mínimos aos quais precisa dar suporte. O Babel então adiciona os polyfills necessários para você. O 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 tem informações detalhadas sobre as opções de configuração disponíveis para especificar destinos de ambiente (option 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 usar o Babel. No entanto, não recomendamos essa opção completa 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.