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 |
---|---|---|
| buscar |
|
| base-64 |
|
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.