Esta página foi traduzida pela API Cloud Translation.
Switch to English

Notas de versão do Firebase JavaScript SDK

Para revisar as notas de versão do console do Firebase e de outras plataformas do Firebase e SDKs relacionados, consulte as Notas da versão do Firebase .

Versão 7.17.1 - 24 de julho de 2020

Google Analytics

  • Adicionada uma atualização de dependência omitida que causava erros no Analytics na inicialização. Resolve o problema # 3469 do GitHub .

Versão 7.17.0 - 23 de julho de 2020

Google Analytics

  • Adicionado um método analytics.isSupported() que retorna true se o contexto atual do navegador suportar o Analytics. Isso pode ser usado condicionalmente para impedir a inicialização do Analytics em ambientes que não o suportam. Essa verificação também é executada automaticamente quando o Analytics é inicializado ( firebase.analytics() ) e, se encontrar um ambiente não suportado, gera um erro informando aos desenvolvedores que usam isSupported() . Resolve o problema # 2393 do GitHub .

Armazenamento

  • As mensagens de erro para erros de back-end agora incluem a mensagem de resposta do back-end.

Versão 7.16.1 - 16 de julho de 2020

Cloud Firestore

  • O SDK não trava mais se ocorrer uma falha no IndexedDB ao cancelar a inscrição em uma Query .

  • Foi removido um atraso que impedia o Firestore de restabelecer imediatamente uma conexão de rede se uma alteração de conectividade ocorresse enquanto o aplicativo estava em segundo plano.

Banco de Dados em Tempo Real

  • Em vez de usar a autenticação de produção, o SDK usará credenciais de teste para conectar-se ao emulador quando o Realtime Database for usado pelo Firebase Admin SDK. Corrige o problema # 3144 do GitHub .

Armazenamento

  • Atualizados os tipos TypeScript para todas as APIs usando o Observer s para permitir a omissão de retorno de chamada. Corrige o problema # 3158 do GitHub .

Autenticação

  • Adicionado o campo do browser em package.json.

Versão 7.16.0 - 09 de julho de 2020

Cloud Firestore

  • Adicionado suporte para set() com opções de mesclagem ao usar o FirestoreDataConverter .

  • Re-adicionou o pacote React Native, que permite que o Cloud Firestore seja usado sem os btoa/atob atob.

  • Removido o invólucro interno da API pública, destinado a impedir o uso incorreto do SDK para usuários de JavaScript, mas fazendo com que o SDK parasse de funcionar no IE11. Veja a edição # 3305 do GitHub .

FCM

  • Corrigido um problema em que tentávamos atualizar o token para cada chamada getToken() porque não getToken() o token atualizado no IndexedDB .

  • Corrigido um problema de incompatibilidade do RxJS adicionando suporte ao onMessage para que o retorno de chamada interno pudesse funcionar com o Subscriber do RxJS. Consulte a edição 3142 do GitHub .

Funções de nuvem para o Firebase Client SDK

  • Limpe o tempo limite após uma resposta bem-sucedida ou após o cancelamento da solicitação. Corrige o problema # 3289 do GitHub .

Versão 7.15.5 - 25 de junho de 2020

Cloud Firestore

  • Corrigido um bug que às vezes fazia com que as operações do Cloud Firestore falhassem durante uma alteração no token de autenticação. Veja a edição # 3179 do GitHub

Versão 7.15.4 - 20 de junho de 2020

Cloud Firestore

  • Removido o ponto de entrada React Native devido a um problema em nossa biblioteca interna. Para o Cloud Firestore no React Native, use a construção do navegador e adicione os polyfills necessários. Veja a edição # 2667 do GitHub

Versão 7.15.3 - 19 de junho de 2020

Cloud Firestore

Versão 7.15.2 - 18 de junho de 2020

Banco de Dados em Tempo Real

  • Adicionado um cabeçalho HTTP interno à conexão WebSocket.

Cloud Firestore

  • grpc-js atualizado para a versão ^1.0.0 .

Versão 7.15.1 - 11 de junho de 2020

Cloud Firestore

  • Corrigido um problema que impedia o cliente de se conectar ao back-end imediatamente após um usuário fazer login. Consulte Problema no GitHub # 2923 .

  • Corrigida uma regressão introduzida no PR # 3048 que alterava a variável context.path de Path|null para undefined|null . Consulte a edição 3172 do GitHub .

Versão 7.15.0 - 04 de junho de 2020

Cloud Firestore

  • Adicionada uma configuração experimentalForceOwningTab que pode ser usada para ativar a persistência em ambientes sem localStorage , que permite que a persistência seja usada em Web Workers. Consulte a edição 983 do GitHub .

  • Todos os casos de falha conhecidos para falhas relacionadas ao IndexedDB foram resolvidos. Em vez de travar o cliente, as falhas do IndexedDB resultam em operações rejeitadas (por exemplo, Writes rejeitadas ou ouvintes de Query erro). Se essas rejeições aparecerem no seu aplicativo, você poderá tentar novamente essas operações quando o acesso ao IndexedDB for restaurado. IndexedDB falhas do IndexedDB que ocorrem devido ao trabalho em segundo plano são tentadas novamente automaticamente.

    Se você continuar vendo as falhas relacionadas ao IndexedDB , forneça um feedback sobre o problema do GitHub nº 2755 .

Versão 7.14.6 - 29 de maio de 2020

Cloud Firestore

  • Corrigido um problema que fazia com que o Cloud Firestore ficasse temporariamente offline quando ocorreu um evento de visibilidade da janela.

  • Adicionado suporte para chamar FirebaseFiresore.settings com { ignoreUndefinedProperties: true } . Quando esse parâmetro é definido, o Cloud Firestore ignora propriedades indefinidas dentro de objetos em vez de rejeitar a chamada da API.

Versão 7.14.5 - 21 de maio de 2020

Banco de Dados em Tempo Real

  • Corrigido um erro de análise de URL do banco de dados em tempo real para oferecer suporte a domínios com mais de 3 componentes.

Versão 7.14.4 - 14 de maio de 2020

Cloud Firestore

  • Corrigida uma regressão introduzida na v7.14.2 que aplicava incorretamente um FieldValue.increment em combinação com set({...}, {merge: true}) .

Versão 7.14.3 - 07 de maio de 2020

Cloud Firestore

  • O Cloud Firestore agora rejeita os ouvintes onSnapshot() se eles não puderem ser registrados no IndexedDB . Anteriormente, esses erros travavam o cliente.

Versão 7.14.2 - 23 de abril de 2020

Cloud Firestore

  • O Firestore agora rejeita operações de gravação se elas não puderem persistir no IndexedDB. Anteriormente, esses erros travavam o cliente.

  • Corrigida uma fonte de falhas relacionadas ao IndexedDB para guias que recebem notificações com várias guias enquanto o sistema de arquivos está bloqueado.

FCM

  • Alterado para comparar o nome do host em vez do URL inteiro para decidir se há um cliente de janela correspondente. Veja a edição # 390 do GitHub .

Versão 7.14.1 - 16 de abril de 2020

Armazenamento

  • Corrigido um problema que acontecia quando os usuários tentavam recuperar dados de várias instâncias de armazenamento.

Autenticação

  • Corrigido um erro que acontecia quando os usuários definiam a persistência como LOCAL em um ambiente de trabalho. Veja a edição # 2903 do GitHub .

Versão 7.14.0 - 9 de abril de 2020

Cloud Firestore

  • grpc substituído por @grpc/grpc-js nas compilações do @grpc/grpc-js Como resultado, a versão mínima suportada do NodeJS agora é 8.13.0 .

Banco de Dados em Tempo Real

  • Adicionado ServerValue.increment() para suportar incrementos de valor de campo atômico sem transações.

Monitoramento de desempenho

  • Mecanismo de transporte de evento de desempenho interno atualizado.

Versão 7.13.2 - 2 de abril de 2020

Cloud Firestore

  • Corrigida uma regressão introduzida por uma alteração de criptografia na 7.13.0 que interrompe o Firestore no IE 11. Consulte a edição no 2827 do GitHub .

  • Corrigido um problema que causa leituras excessivas em grandes conjuntos de alterações em conexões lentas. Consulte a edição 2683 do GitHub .

  • Corrigido um problema que WriteBatch.commit() com que WriteBatch.commit() resolvesse um loop depois de .set e .update . Veja a edição 2822 do GitHub .

FCM

  • Corrigido um problema introduzido na 7.7.0, quando o FCM alternava para fornecer chaves VAPID codificadas em base64 ao PushManager para assinatura push. Para compatibilidade com versões anteriores, o SDK voltou a usar as chaves VAPID no tipo ArrayBuffer . Veja a edição # 2712 do Github .

Versão 7.13.1 - 27 de março de 2020

Cloud Firestore

  • Removida uma vírgula pendente no package.json.

Versão 7.13.0 - 26 de março de 2020

Cloud Firestore

  • Adicionada uma compilação de firestore somente de memória. Em vez de persistir dados no IndexedDB , ele os mantém na memória. Essa compilação é cerca de 14% menor que a compilação com todos os recursos porque não possui código relacionado ao IndexedDB . Se você não se importa com a persistência de dados entre as sessões ou o seu código é executado em ambientes que não oferecem suporte ao IndexedDB , use essa compilação para reduzir o tamanho do aplicativo. Está disponível em um caminho de importação especial. Você pode importá-lo desta maneira:

    import * as firebase from 'firebase/app';
    import 'firebase/firestore/memory';

    // Don't change the format for any other products. import 'firebase/auth'; // etc.

    Ou se estiver usando o CDN:

    <script src="https://www.gstatic.com/firebasejs/7.13.0/firebase-app.js"></script>
    <script src="https://www.gstatic.com/firebasejs/7.13.0/firebase-firestore.memory.js"></script>
    <!-- Don't change the format for any other products. -->
    <script src="https://www.gstatic.com/firebasejs/7.13.0/firebase-auth.js"></script>
    <!-- etc. -->
    

Google Analytics

  • Adicionadas enumerações convenientes e sobrecargas de funções para oferecer suporte a eventos avançados de comércio eletrônico.

Versão 7.12.0 - 19 de março de 2020

  • Foram adicionados dois métodos para o log:
    • firebase.setLogLevel() , que define o nível acima do qual as mensagens de log do Firebase serão mostradas.
    • firebase.onLog() , que adiciona um retorno de chamada especificado pelo usuário em cada evento de log. O retorno de chamada tem acesso ao nível do log, mensagem e nome do pacote (por exemplo, "@ firebase / firestore") que gerou a mensagem de log.

Cloud Firestore

  • Corrigido um problema em que o valor do número -0.0 perdia seu sinal quando armazenado no Cloud Firestore.

Versão 7.11.0 - 12 de março de 2020

Autenticação

Versão 7.10.0 - 5 de março de 2020

Cloud Firestore

  • Implementou Timestamp.valueOf() para que os objetos Timestamp possam ser comparados para ordenação relativa usando os operadores de comparação aritmética JavaScript. Corrige o problema # 2632 do GitHub .

Versão 7.9.3 - 28 de fevereiro de 2020

Armazenamento

  • Corrigido um problema introduzido na 7.9.2, em que o Storage podia gerar um erro CORS ( problema do GitHub ).

Versão 7.9.2 - 27 de fevereiro de 2020

Cloud Firestore

  • Corrigido um problema em que o valor OnlineState era desconfigurado e não estava sendo analisado corretamente.

Versão 7.9.1 - 21 de fevereiro de 2020

Cloud Firestore

  • Corrigido um problema introduzido na 7.9.0, em que os pacotes de Nó Firestore e CJS minificados não funcionavam.

Versão 7.9.0 - 20 de fevereiro de 2020

Cloud Firestore

  • A versão reduzida da biblioteca do Cloud Firestore, adicionada como uma opção experimental na 7.8.0, agora é o pacote padrão do Cloud Firestore. As etapas listadas nas notas de versão 7.8.0 não são mais necessárias para obter o pacote compactado. Atualmente, essa minificação reduz o tamanho total do pacote em aproximadamente 15% a partir dessa compilação.

  • Corrigido um problema em que as credenciais de autenticação não eram respeitadas nos ambientes Cordova. Veja a edição 2626 do Github .

  • Corrigida uma regressão de desempenho introduzida pela adição de Query.limitToLast(n: number) no Firestore 1.7.0 (Firebase 7.3.0). Veja a edição 2620 do Github .

FCM

  • Corrija um problema em que os trabalhadores do serviço não atualizem com segurança após atualizar para uma nova versão do Firebase. Veja a edição # 2590 do Github .

Versão 7.8.2 - 13 de fevereiro de 2020

Cloud Firestore

  • Corrigido um problema em que CollectionReference.add() rejeitava tipos personalizados ao usar withConverter() . Edição no Github # 2606 .

Versão 7.8.1 - 6 de fevereiro de 2020

Cloud Firestore

  • Corrija um erro que causa erros intermitentes quando o mesmo aplicativo é aberto em várias guias. Resolve a edição # 2555 do Github .

Versão 7.8.0 - 30 de janeiro de 2020

Cloud Firestore

  • Experimental: adicionada uma importação minificada alternativa para o pacote do firestore . Os usuários que desejam experimentar essa importação experimental podem fazer o seguinte:

    import * as firebase from 'firebase/app';
    import '@firebase/firestore/dist/index.cjs.min';
    
    // Don't change the format for any other products.
    import 'firebase/auth';
    // etc.
    

    Ou se estiver usando o CDN:

    <script src="https://www.gstatic.com/firebasejs/7.8.0/firebase-app.js"></script>
    <script src="https://www.gstatic.com/firebasejs/7.8.0/firebase-firestore.min.js"></script>
    <!-- Don't change the format for any other products. -->
    <script src="https://www.gstatic.com/firebasejs/7.8.0/firebase-auth.js"></script>
    <!-- etc. -->
    

Versão 7.7.0 - 16 de janeiro de 2020

Cloud Firestore

  • Corrigido um problema em que as credenciais de autenticação não eram respeitadas em algumas extensões do Firefox ou Chrome. Veja a edição # 1491 do Github .

  • O Firestore anteriormente exigia que todos os documentos lidos em uma transação também fossem escritos. Esse requisito foi removido e agora você pode ler um documento em uma transação sem precisar gravá-lo.

Monitoramento de desempenho

  • Protocolo de transporte interno atualizado de proto2 para proto3.

Autenticação

  • Adicionado construtor ausente para o tipo SAMLAuthProvider .

Versão 7.6.2 - 9 de janeiro de 2020

Funções de nuvem para o Firebase Client SDK

  • Corrigido um erro que fazia com que solicitações de permissão de notificação aparecessem ao usar functions.httpsCallable() .

Banco de Dados em Tempo Real

  • A alteração foi revertida, causando um desempenho lento de atualização, conforme relatado no problema do Github # 2487 .

Cloud Firestore

  • Corrigido um problema em que as credenciais de autenticação não eram respeitadas em determinados ambientes do navegador (Electron 7, IE11 em zona confiável, aplicativos UWP). Resolve a edição # 1491 do Github .

Versão 7.6.1 - 18 de dezembro de 2019

Banco de Dados em Tempo Real

  • Corrigido um problema interno de digitação em que a biblioteca firebase-admin , que depende de @firebase/database , falhou ao compilar.

Versão 7.6.0 - 12 de dezembro de 2019

Cloud Firestore

  • Adicionado suporte para armazenar e recuperar tipos personalizados no Cloud Firestore. Adicionado suporte para coleções, documentos e consultas fortemente tipados. Agora você pode usar withConverter() para fornecer um conversor de dados personalizado que será convertido entre os dados do Cloud Firestore e seu tipo personalizado.

  • Foi adicionada uma verificação de ambiente mais forte que verifica especificamente a existência de process.env . Resolve o problema # 2404 do Github .

FCM

  • getToken() agora solicita automaticamente a permissão de notificação se a permissão foi definida como "padrão".

  • Suprimindo temporariamente os erros que ocorrem na redefinição das permissões de notificações, com uma solução de back-end pendente. Resolve a edição # 2364 do Github .

Testando o SDK

  • Corrigido um erro em que o Testing SDK não conseguia se conectar ao emulador do Cloud Firestore. Resolve a edição # 2417 do Github .

Versão 7.5.2 - 6 de dezembro de 2019

Banco de Dados em Tempo Real

  • Corrigido um problema introduzido na 7.5.1 em que @firebase/component não está listado como uma dependência. Causou "Não foi possível encontrar o módulo @firebase/component " no pacote firebase-admin , que depende do Banco de Dados em Tempo Real.

Versão 7.5.1 - 5 de dezembro de 2019

  • Corrigido um problema em que a digitação undefined no IDE solicita a importação automática do pacote do firebase. Endereços # 2203 (link do GitHub) . Obrigado camsjams pela contribuição !

  • Corrigido um erro em que objectVal do objectVal retornaria um objeto vazio se o resultado de snapshot.val() não fosse um objeto.

Configuração remota

  • Corrigido um erro em que as promessas retornadas por fetch() e fetchAndActivate() não eram rejeitadas com erros causados ​​por operações indexeddb . Agora você pode lidar com esses erros no manipulador de erros da promessa retornada.

Versão 7.5.0 - 21 de novembro de 2019

Cloud Firestore

  • Melhorado o desempenho de consultas executadas repetidamente quando a persistência está ativada. As consultas executadas recentemente devem ter melhorias drásticas. Esse benefício é reduzido se as alterações forem acumuladas enquanto a consulta estiver inativa. As consultas que usam a API limit() nem sempre podem se beneficiar, dependendo das alterações acumuladas.

Versão 7.4.0 - 14 de novembro de 2019

Autenticação

  • Adicionado suporte nonce para entrada com credenciais de token de ID OIDC.
  • Adicionado o suporte de entrada do OAuth para aplicativos veiculados desde origens com o esquema ionic:// para a estrutura Ionic mais recente.

Google Analytics

  • Corrigido um erro em que o Google Analytics não funcionava com o Gerenciador de tags do Google na mesma página.

Cloud Firestore

  • O operador in query agora aceita matrizes aninhadas.

Versão 7.3.0 - 7 de novembro de 2019

Cloud Firestore

  • Adicionado in ea array-contains-any operadores de consulta para utilização com .where() . O operador in localiza documentos em que o valor de um campo especificado está em uma matriz especificada. O operador array-contains-any localiza documentos em que um campo especificado é uma matriz e contém qualquer elemento de uma matriz especificada.
  • Adicionado Query.limitToLast(n: number) que retorna os últimos n documentos como resultado.

Versão 7.2.3 - 31 de outubro de 2019

  • Tratamento aprimorado de erros em chamadas de instalações.

Cloud Firestore

  • O cliente agora pode recuperar se certas operações periódicas do IndexedDB falharem. Endereços # 2232 (link do GitHub) .

Google Analytics

  • Adicionadas assinaturas de sobrecarga ausentes para logEvent ao usar os nomes de eventos padrão add_payment_info e page_view .

Versão 7.2.2 - 24 de outubro de 2019

  • Corrigido um erro de detecção de alterações no rxFire.
  • ref.isEqual para ref.isEqual ao comparar documentos para oferecer suporte a grupos de coleta para o Cloud Firestore no rxFire.

Cloud Firestore

  • Suporte aprimorado ao iOS 13, eliminando uma falha adicional em nossa camada de persistência do IndexedDB.

Versão 7.2.1 - 16 de outubro de 2019

Cloud Firestore

  • Corrigida uma falha no iOS 13 que ocorria quando a persistência era ativada em uma guia em segundo plano.
  • Corrigido um problema na interação com o Emulador do Firestore que causava falhas nas solicitações com registro de data e hora.

Versão 7.2.0 - 10 de outubro de 2019

  • O método Installations.getToken() agora aceita um parâmetro opcional forceRefresh .

Configuração remota

  • Corrigido o caminho do script main no arquivo package.json .

Versão 7.1.0 - 3 de outubro de 2019

Cloud Firestore

  • Adicionado um método Firestore.onSnapshotsInSync() que notifica você quando todos os seus ouvintes de snapshot estão sincronizados.

  • Corrigida uma regressão que fazia com que consultas com filtros de campo aninhados travassem o cliente se o campo não estivesse presente na cópia local do documento.

Banco de Dados em Tempo Real

  • Corrigido um problema que fazia com que valores numéricos grandes com zeros à esquerda nem sempre fossem classificados corretamente.

Google Analytics

  • Corrigido um erro em que o firebase.analytics() não estava disponível ao importar o firebase como um pacote completo.

  • O parâmetro eventParams para logEvent() agora é opcional.

Versão 7.0.0 - 26 de setembro de 2019

  • Alteração de quebra: Para usuários do original datilografado, a versão original datilografado mínima exigida é 2.8.0.

FCM

  • Alteração de quebra: Versão 7.0.0 introduz um novo serviço relacionado com o registo instância do aplicativo cliente. Se você está atualmente usando o FCM para a Web e deseja atualizar para o SDK 7.0.0 ou posterior, habilite a API de registro do FCM para seu projeto no Google Cloud Console.

    Ao ativar esse serviço, verifique se está conectado ao Cloud Console com a mesma conta do Google usada para o Firebase e selecione o projeto correto.

    Certifique-se também que projectId , apiKey , appId e messagingSenderId estão presentes em sua configuração do aplicativo. Veja como obter o objeto de configuração do aplicativo .

    Nenhuma outra tarefa de migração é necessária; depois que a API estiver ativada, os aplicativos anteriores à 7.0.0 continuarão funcionando normalmente.

    Novos projetos que adicionam o FCM SDK têm esse serviço ativado por padrão.

  • A versão 7.0.0 introduz a segmentação de aplicativos da web para mensagens FCM enviadas pelo compositor de notificações. Agora você pode direcionar mensagens de notificação da Web por tipo e versão do navegador, bem como sistema operacional. Consulte Enviar mensagens com o Firebase Console .

Google Analytics

Configuração remota

Versão 6.6.2 - 19 de setembro de 2019

Cloud Firestore

  • Corrigida uma regressão introduzida na 6.6.0 onde Document.toString() gera um erro.

Versão 6.6.1 - 12 de setembro de 2019

Banco de Dados em Tempo Real

  • Limpeza interna de código que suporta Node.js.

Versão 6.6.0 - 5 de setembro de 2019

Autenticação

  • Adicionado suporte à multilocação para desenvolvedores do Google Cloud Identity Platform.

Cloud Firestore

  • Corrigida uma condição de corrida entre a autenticação e a inicialização do Firestore, que poderia resultar na eliminação de gravações iniciais no banco de dados.

Versão 6.5.0 - 23 de agosto de 2019

Cloud Firestore

  • Adicionado um método Firestore.waitForPendingWrites() que permite que os usuários esperem até que todas as gravações pendentes sejam reconhecidas pelo back-end do Firestore.
  • Adicionado um método Firestore.terminate() que encerra a instância, liberando quaisquer recursos retidos. Depois de concluído, você pode opcionalmente chamar Firestore.clearPersistence() para limpar os dados persistentes do Firestore do disco.

Versão 6.4.2 - 23 de agosto de 2019

  • Alterado fromRef , 'fromDocRef' e fromCollectionRef para aceitar um parâmetro de option no rxFire.

Monitoramento de desempenho

  • Corrigida uma regressão introduzida na 6.4.1, em que as coleções de métricas internas geravam erros.

Versão 6.4.1 - 22 de agosto de 2019

  • O SDK não gera mais um erro no registro de serviço duplicado. Isso simplifica os casos em que vários componentes dependem internamente de outro componente e podem tentar registrá-lo.

Cloud Firestore

  • As transações agora realizam retirada exponencial antes de tentar novamente. Isso significa que as transações em documentos altamente disputados têm maior probabilidade de êxito.

Monitoramento de desempenho

  • O Monitoramento de desempenho agora valida métricas e atributos de desempenho antes de armazená-los.

Versão 6.4.0 - 15 de agosto de 2019

Banco de Dados em Tempo Real

  • Ao analisar a URL do banco de dados em tempo real, o parâmetro de consulta da URL ns será tratado como o nome do espaço para nome padrão do banco de dados em tempo real.
  • Corrigido um problema que fazia com que os eventos .info/serverTimeOffset não .info/serverTimeOffset .

Versão 6.3.5 - 8 de agosto de 2019

Autenticação

  • Corrigido um problema em que os resultados do redirecionamento em cache não eram limpos depois de chamar signOut() ou getRedirectResult() .

Versão 6.3.4 - 1 de agosto de 2019

Banco de Dados em Tempo Real

  • Corrigido um problema em que caracteres UTF-8 de vários bytes não eram gravados corretamente ao usar o firebase.js ou o firebase-database.js .

Versão 6.3.3 - 26 de julho de 2019

Banco de Dados em Tempo Real

  • Corrigida uma regressão introduzida na v6.3.2 causando erros ao executar em um ambiente de navegador.

Versão 6.3.2 - 25 de julho de 2019

Banco de Dados em Tempo Real

  • Adicionada uma variável de ambiente ( FIREBASE_DATABASE_EMULATOR_HOST ) que permite que os desenvolvedores apontem o SDK do emulador de banco de dados para uma instância local do emulador de banco de dados.

Monitoramento de desempenho

  • O SDK foi atualizado para lidar melhor com os erros quando a biblioteca de Monitoramento de Desempenho é importada em um ambiente sem um objeto de window (como o lado do servidor de um aplicativo SSR) ou uma instância do Monitoramento de Desempenho é inicializada nesse ambiente.

Versão 6.3.1 - 18 de julho de 2019

Cloud Firestore

  • As transações agora são mais flexíveis. Algumas seqüências de operações que anteriormente eram incorretamente proibidas agora são permitidas. Por exemplo, depois de ler um documento que não existe, agora você pode configurá-lo várias vezes com êxito em uma transação.

  • Corrigido um problema em que os resultados da consulta estavam temporariamente ausentes de documentos que não correspondiam anteriormente, mas que foram atualizados para corresponderem agora à consulta.

Versão 6.3.0 - 11 de julho de 2019

Monitoramento de desempenho

  • Corrigido um problema que causava erros durante o carregamento da página em ambientes do navegador que não suportam o IndexedDB (como quando os cookies estão desativados).

Versão 6.2.4 - 27 de junho de 2019

Monitoramento de desempenho

  • Corrigido um problema em que o Monitoramento de Desempenho lança uma exceção em ambientes não suportados. Agora, o Monitoramento de Desempenho não será inicializado em ambientes não suportados.

Versão 6.2.3 - 24 de junho de 2019

Autenticação

  • Corrigido um erro que causava erros no nó.

Cloud Firestore

  • Corrigido um problema que fazia com que algumas consultas não retornassem resultados.

Versão 6.2.2 - 21 de junho de 2019

  • Alteração revertida na maneira como o pacote React Native importa o AsyncStorage , pois estava causando erros.

Cloud Firestore

  • AsyncQueue mensagens de erro mais informativas para erros do AsyncQueue no iOS.

Versão 6.2.1 - 20 de junho de 2019

  • Atualizado o pacote AsyncStorage React Native para tentar primeiro importar o módulo AsyncStorage do pacote da comunidade recomendado, se disponível, em vez da versão agora obsoleta incluída no núcleo do React Native.

  • Corrigido um erro na verificação do ambiente do Firebase que pode causar erros quando o Firebase é incluído no código do usuário (usando ferramentas como Rollup).

Cloud Firestore

  • Corrigido um problema que causava erros nos ambientes em que window.addEventListener ausente, como React Native with Expo.

Armazenamento

  • Corrigido um tipo incorreto nos parâmetros de Reference.put() .

Versão 6.2.0 - 13 de junho de 2019

Cloud Firestore

  • Adicionado clearPersistence() , que limpa o armazenamento persistente, incluindo gravações pendentes e documentos em cache. Isso tem como objetivo ajudar a escrever testes confiáveis.

  • Adicionado registro e uma mensagem de erro personalizada para ajudar os usuários a acessar https://bugs.webkit.org/show_bug.cgi?id=197050 (um bug no iOS 12.2 que causa uma falha no SDK quando a persistência está ativada).

Versão 6.1.1 - 6 de junho de 2019

  • Fiz alguma refatoração interna para melhorar a segurança do tipo e a geração de documentação.

Versão 6.1.0 - 28 de maio de 2019

Cloud Firestore

  • Corrigido um problema em que uma verificação do ambiente falha nos ambientes Node.js.

Armazenamento

  • Adicionada a capacidade de listar objetos em um bucket.

Mensagens na nuvem

  • requestPermission() preterido Use a API nativa do navegador Notification.requestPermission() .

Versão 6.0.4 - 23 de maio de 2019

  • A verificação do ambiente do navegador agora pode detectar um ambiente de trabalho da web.

  • @firebase/app-types e @firebase/util agora são dependências diretas do pacote principal do firebase .

Cloud Firestore

  • O Cloud Firestore retornará normalmente à persistência de memória quando o usuário estiver na Navegação Privada do Firefox.

  • O Cloud Firestore agora se recupera mais rapidamente após a alteração da conectividade da rede (modo avião, disponibilidade de Wi-Fi, etc.).

Versão 6.0.2 - 9 de maio de 2019

  • A verificação do ambiente do navegador agora funciona corretamente sem gerar um erro em ambientes que não são do navegador.

Cloud Firestore

  • gRPC atualizado para 1.20.3 para oferecer suporte ao Node.js 12 e ao Electron v5.0.

Versão 6.0.1 - 8 de maio de 2019

Autenticação

  • Corrigida uma regressão introduzida na 6.0.0 que fazia o código acessar uma propriedade removida.

Versão 6.0.0 - 7 de maio de 2019

  • Alteração de quebra: polyfills removidos no pacote Firebase. Agora, os desenvolvedores devem decidir quais polyfills incluir com base nos ambientes de que precisam oferecer suporte. Isso garante que apenas os polyfills necessários sejam incluídos, reduzindo o tamanho do aplicativo. Consulte Suporte ao ambiente .

Autenticação

  • Alterações recentes: APIs removidas anteriormente obsoletas.

    Removido Substituído por
    signInAndRetrieveDataWithCustomToken signInWithCustomToken
    signInAnonymouslyAndRetrieveData signInAnonymously
    createUserAndRetrieveDataWithEmailAndPassword createUserWithEmailAndPassword
    signInAndRetrieveDataWithEmailAndPassword signInWithEmailAndPassword
    fetchProvidersForEmail fetchSignInMethodsForEmail
  • Última alteração : atualizada a assinatura do tipo de retorno para signInWithCredential e linkWithCredential para uma promessa que é resolvida com um UserCredential vez de um User .

  • Alterado reauthenticateWithCredential para retornar uma promessa que é resolvida com um UserCredential .

  • Preteriu as seguintes APIs

    Descontinuada Use em vez disso
    signInAndRetrieveDataWithCredential signInWithCredential
    linkAndRetrieveDataWithCredential linkWithCredential
    reauthenticateAndRetrieveDataWithCredential reauthenticateWithCredential

Cloud Firestore

  • Agora você pode consultar todas as coleções do seu banco de dados com um ID de coleção específico, usando o método FirebaseFirestore.collectionGroup() .

  • Descontinuou a configuração experimentalTabSynchronization em favor de synchronizeTabs . Se você usar a sincronização com várias guias, é recomendável atualizar sua chamada para enablePersistence() . O Firestore registra um erro se você continuar usando experimentalTabSynchronization .

Banco de Dados em Tempo Real

  • Quebrar mudança: Melhoria da consistência entre as anotações de tipo para Query.on / Reference.on , Query.off / Reference.off e Query.once / Reference.once .

Monitoramento de desempenho

  • Esta versão contém o novo SDK do Performance Monitoring Client. Visite o guia de Introdução ao Monitoramento de Desempenho para Web.

Versão 5.10.1 - 25 de abril de 2019

Autenticação

  • Corrigido um problema em que eventos de autenticação duplicados podiam causar erros ao usar signInWithPopup() .
  • Corrigido um problema em que o SDK podia falhar ao detectar que estava em um ambiente de trabalhador de serviço.
  • Adicionada uma mensagem de erro que aparece quando o cliente tenta executar uma operação somente de administrador.

Cloud Firestore

  • Ativou o SDK para reconhecer versões mais antigas do iOS Safari e Android ao verificar se a persistência pode ser ativada.

Versão 5.10.0 - 18 de abril de 2019

Autenticação

  • Adicionados métodos de serialização e desserialização às classes AuthCredential.

Cloud Firestore

  • Adicionada uma configuração experimentalForceLongPolling que pode ser usada para solucionar proxies que impedem que o cliente Firestore se conecte ao back-end do Firestore.

Versão 5.9.4 - 11 de abril de 2019

Armazenamento

  • Corrigida uma definição de tipo incorreta nos parâmetros de UploadTask.on() .

Versão 5.9.3 - 4 de abril de 2019

Mensagens na nuvem

  • Refatorado para usar const enum para ErrorCode .

Versão 5.9.2 - 28 de março de 2019

Cloud Firestore

  • Adicionada uma definição de tipo ausente para firestore.FieldValue.increment .

Versão 5.9.1 - 21 de março de 2019

Cloud Firestore

  • Aumento do tempo limite da conexão que pode levar a novas gravações repetidamente repetidas sem sucesso.

  • Corrigido um problema em que as transações em um aplicativo NodeJS podiam ser enviadas sem credenciais de autenticação, levando a erros de permissão negada.

  • Fixed an issue with IndexedDb persistence that triggered an internal assert for Queries that use nested DocumentReferences in where() clauses.

Version 5.9.0 - Mar 14, 2019

Cloud Firestore

  • Added FieldValue.increment() , which can be used in update() and set(..., {merge:true}) to increment or decrement numeric field values safely without transactions.
  • Prepared the persistence layer to support collection group queries. While this feature is not yet available, all schema changes are included in this release. Once you upgrade, you will not be able to use an older version of the Firestore SDK with persistence enabled.

FCM

  • The SDK now does not send messages to Chrome Extension background pages, which previously caused notifications not to display.

Storage

  • Fixed an incorrect type definition.

Version 5.8.6 - Mar 7, 2019

Cloud Firestore

  • Improved performance when querying over documents that contain subcollections.

Version 5.8.5 - Mar 1, 2019

  • Added a warning that appears in the console at runtime if a Firebase browser bundle is loaded in a node environment.

Authentication

  • Added OAuthCredential type as an exposed type.

  • Fixed updateProfile() so each property passed to it is optional.

Cloud Functions for Firebase Client SDK

  • Added timeouts and ability to customize them to HttpsCallables .

Version 5.8.4 - Feb 21, 2019

Cloud Firestore

  • Fixed an uncaught promise error occurring when enablePersistence() was called in a second tab.

Testing SDK

  • Made rulesets that don't compile throw errors.

Version 5.8.3 - Feb 14, 2019

Cloud Firestore

  • Improved error handling for endAt queries.

Version 5.8.2 - Jan 31, 2019

  • Added a missing file to the files array in package.json.

  • Fixed some errors in the documentation.

Version 5.8.1 - Jan 24, 2019

  • Added the missing depenedency to auth-types and storage-types packages.

Testing SDK

  • Added clearFirestoreData() to delete data between tests.

Version 5.8.0 - Jan 17, 2019

  • Added a type definition file for all firebase components, so that they work with TypeScript with dynamic import.

Cloud Firestore

  • BREAKING: The timestampsInSnapshots setting is now enabled by default. Now, timestamp fields read from a DocumentSnapshot will be returned as Timestamp objects instead of Date . Any code expecting to receive a Date object must be updated.

  • Fixed a crash that could happen when the app is shut down after a write has been sent to the server but before it has been received on a listener.

Version 5.7.2 - Jan 10, 2019

  • Fixed a packaging issue where some external dependencies were included in the Firebase package.

  • Added syntax highlights to the README file.

Cloud Firestore

  • Fixed a regression introduced in 5.7.0 that caused apps using experimentalTabSynchronization to hit an exception for "Failed to obtain primary lease for action 'Collect garbage'".

Version 5.7.1 - Dec 20, 2018

Authentication

  • Added SAML providers and exposed the API to enable OIDC providers.

  • Changed the email validation logic to allow international email addresses.

Cloud Firestore

  • Added a custom error for schema downgrades.

Version 5.7.0 - Dec 6, 2018

Cloud Firestore

  • Added a garbage collection process to on-disk persistence that removes older documents. This is enabled automatically if persistence is enabled, and the SDK will attempt to periodically clean up older, unused documents once the on-disk cache passes a threshold size (default: 40 MB). This threshold can be configured by changing the setting cacheSizeBytes in the settings passed to Firestore.settings() . It must be set to a minimum of 1 MB. The garbage collection process can be disabled entirely by setting cacheSizeBytes to CACHE_SIZE_UNLIMITED .

  • Updated gRPC version to support Node 11.

Version 5.6.0 - Nov 29, 2018

Authentication

  • Added the ability to customize the dynamic link domain for email actions.

Version 5.5.9 - Nov 20, 2018

  • Updated mocha to version 5.2.0.

  • Corrected syntax errors for Realtime Database example in rxFire documentation.

Cloud Firestore

  • Capped the amount of exponential backoff gRPC will use for reconnection attempts to 100ms.

Version 5.5.8 - Nov 8, 2018

Authentication

  • Added a source map to faciliate easy debugging.

Version 5.5.7 - Nov 1, 2018

Cloud Functions for Firebase Client SDK

  • Added the type definition for the useFunctionsEmulator method in the Cloud Functions for Firebase Client SDK.

Version 5.5.6 - Oct 25, 2018

  • Changed to distribute component libraries in UMD format from the CDN.

Cloud Firestore

  • Fixed an issue where the library is not compatible with IE 11.

Version 5.5.5 - Oct 18, 2018

  • Updated documentation to include examples for typescript and native es6 module in Node.js environment.

  • Fixed the import path for Authentication in rxFire documentation.

Version 5.5.4 - Oct 11, 2018

Authentication

  • Fixed an issue where the this variable was changed to undefined incorrectly.

Cloud Firestore

  • Removed fallback based on eval() for JSON parsing, allowing SDK to be used in environments that prohibit eval() .

Version 5.5.3 - Oct 4, 2018

Cloud Firestore

  • Fixed an issue that prevented query synchronization between multiple tabs.
  • Start tracking document usage in preparation for LRU Garbage Collection.

Version 5.5.2 - Sep 27, 2018

  • Fixed a browser compatibility issue with Safari 9 when loading individual components using the CDN.

Cloud Firestore

  • Fixed an issue where native ES6 module loading was not working.

Authentication

  • Added a new phone auth error message for malformed or mismatching credentials.

Version 5.5.1 - Sep 19, 2018

  • Updated the dependency version for the closure compiler, so it works with Java 10.

Cloud Firestore

  • Fixed an issue where typings are created in the wrong location.

Realtime Database

  • Fixed an issue where typings are created in the wrong location.

Version 5.5.0 - Sep 12, 2018

  • Fixed an issue where typings for the firebase package were referenced incorrectly.

Cloud Firestore

  • Access to offline persistence is no longer limited to a single tab. You can opt into this new experimental mode by invoking enablePersistence() with {experimentalTabSynchronization: true} . All tabs accessing persistence must use the same setting for this flag.
  • Fixed an issue where the first get() call made after being offline could incorrectly return cached data without attempting to reach the backend.
  • Changed get() to only make 1 attempt to reach the backend before returning cached data, potentially reducing delays while offline. Previously it would make 2 attempts, to work around a backend bug.
  • Fixed an issue that caused us to drop empty objects from calls to set(..., { merge: true }) .
  • Improved argument validation for several API methods.
  • Changed the internal handling for locally updated documents that haven't yet been read back from Cloud Firestore. This can lead to slight behavior changes and may affect the SnapshotMetadata.hasPendingWrites metadata flag.
  • Eliminated superfluous update events for locally cached documents that are known to lag behind the server version. Instead, we buffer these events until the client has caught up with the server.

Version 5.4.2 - August 30, 2018

Authentication

  • Fixed an issue where the navigator global was unavailable in some environments.

Version 5.4.1 - August 23, 2018

Cloud Firestore

  • Fixed a regression that prevented use of Cloud Firestore on ReactNative's Expo platform (#1138).

Authentication

  • Fixed an isssue in the IndexedDB implementation that was slow for some browsers.
  • Fixed a memory leak in the IndexedDB implementation.

Version 5.4.0 - August 16, 2018

Cloud Firestore

  • Fixed get({source: 'cache'}) to be able to return nonexistent documents from cache.
  • Prepared the persistence layer to allow shared access from multiple tabs. While this feature is not yet available, all schema changes are included in this release. Once you upgrade, you will not be able to use an older version of the Firestore SDK with persistence enabled.
  • Fixed an issue where changes to custom authentication claims did not take effect until you did a full sign-out and sign-in. ( firebase/firebase-ios-sdk#1499 )

Version 5.3.1 - August 3, 2018

Cloud Firestore

  • Improved how Firestore handles idle queries to reduce the cost of re-listening within 30 minutes.
  • Improved offline performance with many outstanding writes.

Version 5.3.0 - July 19, 2018

Authentication

  • Fixed an issue where redirect results were being handled incorrectly for deleted Auth instances.

Cloud Firestore

  • Fixed an issue where queries returned fewer results than they should, caused by documents that were cached as deleted when they should not have been (firebase/firebase-ios-sdk#1548). Because some cache data is cleared, clients might use extra bandwidth the first time they launch with this version of the SDK.
  • Added firebase.firestore.FieldValue.arrayUnion() and firebase.firestore.FieldValue.arrayRemove() to atomically add and remove elements from an array field in a document.
  • Added 'array-contains' query operator for use with .where() to find documents where an array field contains a specific element.

Version 5.2.0 - June 28, 2018

Cloud Functions for Firebase Client SDK

  • Added a method that allows the Cloud Functions for Firebase Client SDK to use a local Functions Emulator.
  • Added support for specifying a region for a given function.

Realtime Database

  • Fixed an issue that caused database to not work on IE 11.

Version 5.1.0 - June 21, 2018

  • Fixed an issue with the typings where the firebase namespace wasn't being exported.

Authentication

  • Added an ES Module export of Firebase Auth
  • Fixed an issue with the IndexedDB fallback logic

Version 5.0.4 - May 24, 2018

  • Update the README.md files for our scoped packages on NPM (ie @firebase/app , @firebase/auth , @firebase/database , etc) to properly reflect the officially supported API.

FCM

  • Fixed an issue where VAPID keys weren't being handled correctly.

Cloud Firestore

  • Improved the messaging when unable to connect to the backend servers.

Realtime Database

  • Fixed the typings for forEach and forEachChild to properly support all valid return types.

Version 5.0.3 - May 17, 2018

  • Fixed a regression that was causing the import * as firebase from 'firebase'; syntax to fail.

FCM

  • Fixed an issue where the messaging types were inconsistent with our documentation.

Cloud Firestore

  • Updated our GRPC dependency which fixed an issue some users had during npm install .

Version 5.0.2 - May 10, 2018

  • Fixed an issue where some of the nested imports (eg firebase/app ) weren't exposing the proper types.

FCM

  • Changed a behavior where, if a VAPID key did not exist, an error was thrown.

Version 5.0.1 - May 8, 2018

  • Fixed an issue with our typings that was preventing Typescript apps from compiling.

Version 5.0.0 - May 8, 2018

  • Refactored the top-level Firebase entrypoints (eg import firebase from 'firebase'; ) to additionally include the Firestore and Functions components which were previously excluded by default. Developers using these bundles will find a warning in the browser console instructing them how to include only the components they are using, which will improve the performance of their applications.

Authentication

  • Exposes the new Auth.settings.appVerificationDisabledForTesting flag for disabling reCAPTCHA app verification used for phone authentication integration testing with whitelisted phone numbers.
  • Exposes the new Auth.updateCurrentUser API for copying firebase.User objects between Firebase apps.
  • Updated the return type signature for signInWithEmailAndPassword , signInWithCustomToken , signInAnonymously and createUserWithEmailAndPassword to return a promise that resolves with a UserCredential instead of a user.
  • Removed getToken API in favor of getIdToken and getIdTokenResult .
  • Deprecated signInWithCredential , linkWithCredential , reauthenticateWithCredential and fetchProvidersForEmail in favor of signInAndRetrieveDataWithCredential , linkAndRetrieveDataWithCredential , reauthenticateAndRetrieveDataWithCredential and fetchSignInMethodsForEmail .
  • Improved detection of external auth state changes for synchronizing Auth state between different windows.

Realtime Database

  • Removed the private path property from firebase.database.Reference .

Cloud Firestore

  • Merged the includeQueryMetadataChanges and includeDocumentMetadataChanges options passed to Query.onSnapshot() into a single includeMetadataChanges option.
  • QuerySnapshot.docChanges() is now a method that optionally takes an includeMetadataChanges option. By default, even when listening to a query with { includeMetadataChanges:true } , metadata-only document changes are suppressed in docChanges() .
  • Added new { mergeFields: (string|FieldPath)[] } option to set() which allows merging of a reduced subset of fields.

Storage

  • Removed the previously deprecated FullMetadata.downloadURLs and UploadTaskSnapshot.downloadURL properties.

Version 4.13.0 - April 19, 2018

  • Added support for an alternate initializeApp syntax, to facilitate additional config options.
  • Fixed the version of our devDependencies throughout the SDK to ensure that build/test changes are picked up in future releases.
  • Refactored to use core-js for our Polyfills/Shims.

Authentication

  • Fixed an issue where navigator.onLine sometimes errantly reports false .
  • Fixed an issue where Firefox multi-tab/private mode browsing threw errors with our IndexedDB implementation.
  • Exposes the new getIdTokenResult API for firebase.User objects.

Cloud Firestore

  • Added a new Timestamp class to represent timestamp fields, currently supporting up to microsecond precision. It can be passed to API methods anywhere a JS Date object is currently accepted. To make DocumentSnapshot s read timestamp fields back as Timestamp s instead of Dates, you can set the newly added flag timestampsInSnapshots in FirestoreSettings to true . Note that the current behavior ( DocumentSnapshot s returning JS Date objects) will be removed in a future release. Timestamp supports higher precision than JS Date.
  • Added ability to control whether DocumentReference.get() and Query.get() should fetch from server only, (by passing { source: 'server' } ), cache only (by passing { source: 'cache' } ), or attempt server and fall back to the cache (which was the only option previously, and is now the default).

FCM

  • Fixed an issue where getToken was throwing errors in Worker environments.
  • General cleanup and hardening of the entire messaging codebase. added Typescript types, additional tests, etc.

Storage

Version 4.12.1 - March 29, 2018

  • Fixed an issue where Typescript would throw errors due to duplicate symbols.

Authentication

  • Fixed an issue where several of the new APIs were missing from the firebase package typings.

Cloud Firestore

  • Fixed a regression in the Firebase JS release 4.11.0 that could cause get() requests made while offline to be delayed by up to 10 seconds (rather than returning from cache immediately).
  • Fixed an issue where some NPM users were seeing large performance degradations on Edge.
  • Fixed an issue where several APIs were missing from the firebase package typings.

FCM

  • Improved error messaging around the useServiceWorker function to better communicate the intended use case.

Version 4.12.0 - March 20, 2018

Authentication

Cloud Functions for Firebase Client SDK

This release contains the new Firebase Functions Client SDK, with support for HTTPS Callable Functions. See Call Functions from Your App .

Cloud Firestore

  • Fixed a regression in the Firebase JS release 4.11.0 that could cause a crash if a user signs out while the client is offline, resulting in an error of "Attempted to schedule multiple operations with timer id listen_stream_connection_backoff".

Version 4.11.0 - March 8, 2018

Realtime Database

  • Fixed an issue where certain browser APIs weren't available in IE 11.
  • Added the ability to create a new reference from an existing database reference.

Cloud Firestore

  • If the SDK's attempt to connect to the Cloud Firestore backend doesn't succeed or fails within 10 seconds, the SDK will consider itself "offline", causing get() calls to resolve with cached results, rather than continuing to wait.

Version 4.10.1 - February 22, 2018

  • Did some internal refactoring to support the use of modern typescript APIs across the codebase (thanks merlinnot for the PR !)

Realtime Database

  • Fixed an issue where users were unintentionally receiving an "Invalid query string" warning (see this issue ).

FCM

  • Fixed an issue where some users received duplicate notifications.
  • Fixed an issue with a missing API in the typings.

Version 4.10.0 - February 15, 2018

Cloud Firestore

  • Fixed an issue where Microsoft Edge users were seeing slow response times.

Realtime Database

  • Allow users passing custom database URLs, to set the namespace via the ns query parameter.

FCM

  • Added the usePublicVapidKey API to facilitate custom server application key usage.

Version 4.9.1 - February 1, 2018

  • Fixed an issue where ES6 wildcard imports were breaking Closure Compiler (thanks @Doehl for the PR !)

Authentication

  • Fixed an issue with universal link subscriptions when multiple listeners are registered.

Realtime Database

  • Allow users to set the database URL to a localhost value (thanks @rynobax for the PR !)

Cloud Firestore

  • Fixed a regression in Firebase JS release 4.9.0 that could in certain cases result in an "OnlineState should not affect limbo documents." assertion crash when the client loses its network connection.

Version 4.9.0 - January 18, 2018

  • Snapshot listeners (with the includeMetadataChanges option enabled) now receive an event with snapshot.metadata.fromCache set to true if the SDK loses its connection to the backend. A new event with snapshot.metadata.fromCache set to false will be raised once the connection is restored and the query is in sync with the backend again.
  • Added SnapshotOptions API to control how DocumentSnapshots return unresolved server timestamps.
  • Added disableNetwork() and enableNetwork() methods to Firestore class, allowing for explicit network management.
  • For non-existing documents, DocumentSnapshot.data() now returns undefined instead of throwing an exception. A new QueryDocumentSnapshot class is introduced for Queries to reduce the number of undefined-checks in your code.
  • Added isEqual API to GeoPoint , Blob , SnapshotMetadata , DocumentSnapshot , QuerySnapshot , CollectionReference , FieldValue and FieldPath .
  • A "Could not reach Firestore backend." message will be logged when the initial connection to the Firestore backend fails.
  • A "Using maximum backoff delay to prevent overloading the backend." message will be logged when we get a resource-exhausted error from the backend.

Version 4.8.2 - January 11, 2018

  • Fixed some regressions that were introduced in the typings refactor from the last release.
  • Added the missing "author" field to the package.json files of each of the NPM packages.

Version 4.8.1 - December 18, 2017

  • Refactored the typings setup across the SDK.

Cloud Firestore

  • A "Could not reach Firestore backend." message will be logged when the initial connection to the Firestore backend fails.
  • A "Using maximum backoff delay to prevent overloading the backend." message will be logged when we get a resource-exhausted error from the backend.

Version 4.8.0 - December 7, 2017

Authentication

Cloud Firestore

  • Fixed an issue with the Firestore webchannel integration that prevented use of firestore in worker environments.

Version 4.7.0 - November 30, 2017

Cloud Firestore

  • Added Node.js support for Cloud Firestore (with the exception of offline persistence).
  • Refactor Webchannel integration to avoid extra CORS preflight requests.

Version 4.6.2 - November 9, 2017

Authentication

  • Fixed an issue where localStorage errors were not being caught properly.
  • Return auth/user-disabled instead of auth/internal-error when signing in with an OAuth provider using a disabled account.

Cloud Firestore

  • Network streams are automatically closed after 60 seconds of idleness.
  • We no longer log 'RPC failed' messages for expected failures.
  • Fixed an "Image is not defined" error when using Cloud Firestore from React Native.

Version 4.6.1 - November 2, 2017

  • Updated dependency versions across the different sub packages.

Authentication

  • Released the Open Source auth codebase.
  • Automatically resets the reCAPTCHA after the phone authentication flow is triggered to prevent the same reCAPTCHA token from being sent in subsequent calls.

Version 4.6.0 - October 19, 2017

Authentication

  • Added firebase.User.prototype.metadata which includes information about user creation time and last sign in time.
  • Added the isNewUser property to firebase.auth.AdditionalUserInfo , which is returned by sign in methods to indicate whether a user is a new or returning user.
  • Fixed a TypeError thrown after manually clearing localStorage

Realtime Database

  • Fixed a regression introduced in version 4.5.1 where authenticated user info was not properly being passed to the server, causing reads and writes to fail with permission_denied errors.

Cloud Firestore

  • Fixed the validation of nested arrays to allow indirect nesting.
  • We now support FieldValue.delete() sentinels in set() calls with {merge:true} .

Version 4.5.2 - October 16, 2017

  • Fixed an issue where the "react-native" property was missing from the firebase package.json.
  • Fixed an issue where firebase.SDK_VERSION was returning the placeholder string.

Version 4.5.1 - October 12, 2017

  • Refactored the internal module structure to make our package more modular and easier to maintain.

Cloud Firestore

  • Fixed an issue causing exceptions when trying to use firebase.firestore.FieldPath.documentId() in an orderBy() or where() clause in a query.

Version 4.5.0 - October 2, 2017

Version 4.4.0 - September 21, 2017

Authentication

  • Fixed some issues with null initialization of several classes in the externs files.

Realtime Database

Version 4.3.1 - September 7, 2017

Authentication

  • Fixed issue with typings for features released in 4.3.0

Version 4.3.0 - August 17, 2017

Authentication

  • Added client side localization for email actions (password reset, email verification, etc), phone authentication SMS messages, OAuth flows and reCAPTCHA verification.
  • Added the ability to pass a continue URL/state when triggering a password reset/email verification which gives a user the ability to go back to the app after completion. In addition, added support for the ability to open these links directly from a mobile app instead of a web flow using Firebase Dynamic Links. See the docs for more information.
  • Fixed issue with IE10 state synchronization across tabs

Version 4.2.0 - July 27, 2017

Authentication

  • Added ability to configure state persistence. See the docs for more information.
  • Added missing phoneNumber property on provideData objects.
  • Fixed temporary error message when opening a popup for sign-in, prominent in some IE browsers.
  • Refactored to not use navigator.onLine for offline detection in Cordova environments.

Realtime Database

  • Fixed an issue where database references were missing a toJSON method.

Version 4.1.5 - July 25, 2017

Authentication

  • Fixed an issue where authenticated realtime database access wasn't possible.

Version 4.1.4 - July 24, 2017

  • Bundle size improvements for firebase-app.js , firebase-storage.js , firebase-messaging.js .

Realtime Database

  • Refactored internal implementation to TypeScript.

Version 4.1.3 - June 21, 2017

  • Fixed an issue where certain app names were invalid

Authentication

  • Fixed an issue with the PhoneAuthProvider typings
  • Fixed an issue where network errors from signInWithRedirect were cached even after the network connection stabilized.
  • Fixed an issue where Cordova OAuth redirects in iOS apps were failing due iOS bundle ID case sensitive checks.

Version 4.1.2 - June 6, 2017

  • Fixed an issue where sourcemaps weren't pointing to the actual Typescript source code.
  • Fixed an issue where FirebaseAppImpl.prototype was being incorrectly patched.
  • Fixed an issue where loading the SDK from our CDN, while also providing a chunked webpack build, was duplicating the webpackJsonp namespace.

Version 4.1.1 - May 31, 2017

  • Fixed an issue where the default storage bucket was not being initialized correctly.

Version 4.1.0 - May 30, 2017

  • Allow for lazy initialization of Firebase components (ie Authentication, Realtime Database, Storage, FCM).

Authentication

  • Fixed an issue where the SDK could trigger an infinite loop when loaded in an iFrame on Safari.

Version 4.0.0 - May 17, 2017

Authentication for Servers

  • Removed support for deprecated serviceAccount and credential properties from the Node.js SDK. If you were previously using the Firebase Javascript SDK to use these properties, use the Firebase Admin Node.js SDK instead.

Authentication

Version 3.9.0 - April 25, 2017

Authentication

  • Deprecated firebase.auth.authCredential.prototype.provider in favor of the firebase.auth.AuthCredential.prototype.providerId property.
  • Fixed an issue where Cordova apps were seeing unusual delays in authentication.

Version 3.8.0 - April 18, 2017

  • Provide source maps for firebase-app.js.

Authentication

Version 3.7.8 - April 14, 2017

  • Fixed an issue where npm-shrinkwrap.json was not being generated correctly.

Version 3.7.7 - April 14, 2017

  • Fixed an issue where undefined symbols caused an error to be thrown in older browsers.

Version 3.7.6 - April 11, 2017

Authentication

  • Fixed an issue where removal of a legacy options object broke older clients.

Version 3.7.5 - April 4, 2017

Storage

  • Provide higher-granularity progress updates for object uploads.

Version 3.7.4 - March 28, 2017

Realtime Database

  • Fixed an issue where firebase.database().ref().push() , would trigger an infinite loop if the returned .then() function was called.

Authentication

  • Fixed an issue where firebase.User.reauthenticate() was creating new users if passed an OAuth credential for a user that didn't exist.

Version 3.7.3 - March 21, 2017

Realtime Database

  • Fixed error messaging for invalid calls to Query.equalTo() .

Version 3.7.2 - March 14, 2017

  • Fixed an issue where some components erroneously allowed creation of multiple instances.

Version 3.7.1 - March 9, 2017

Authentication

  • Updated firebase.auth().signInWithPopup() to work properly in Chrome extensions.
  • Improved session handling for prolonged usage of the Realtime Database.

Version 3.7.0 - March 1, 2017

Storage

  • Added support for using multiple buckets within Storage.

Version 3.6.10 - February 21, 2017

Storage

  • Fixed an issue where the catch() method didn't exist on UploadTask .

Version 3.6.9 - February 7, 2017

Authentication

  • Fixed an issue that broke firebase.auth().signInWithCredential() in a browser environment when the current URL has the OAuth 2.0-specific state query parameter.

Version 3.6.8 - January 31, 2017

  • Fixed an issue with some module bundlers. The npm (commonjs) modules no longer require a global variable to be set explicitly and fallback to window or self if global is not defined.

Authentication

  • Increased authentication timeouts for network requests to handle slow network connections.
  • Fixed authentication module Node.js detection to be compatible with browserify.
  • Modified firebase.auth().signInWithPopup() to work for apps embedded in a sandboxed iframe.
  • Fixed the Android Chrome bug for triggering internal-errors in firebase.auth().signInWithPopup()
  • Fixed an issue that broke firebase.auth().signInWithCredential() and firebase.auth().fetchProvidersForEmail() in non http/https environments like chrome-extensions.
  • Fixed progress bar styling in the OAuth helper for popup/redirect operations.

Version 3.6.7 - January 24, 2017

  • Improved Firebase app errors to return error codes prefixed with app/ consistent with other Firebase service errors.

Version 3.6.6 - January 17, 2017

  • Fixed support for TypeScript and ES6 imports of individual SDK modules (see the npm package README for more information).

Authentication

  • Fixed an issue on Chrome for iOS where a blank gray screen was being displayed when signInWithPopup() does not require additional user interaction (because the user is already signed in and has previously consented to the requested scopes).

Version 3.6.5 - January 10, 2017

Storage

Version 3.6.4 - December 13, 2016

Realtime Database

Storage

  • Fixed an issue where percent-encoded data in a data URL was not decoded.

Authentication

  • Optimized offline detection to reduce the frequency of network timeouts.

Version 3.6.3 - December 6, 2016

  • Changed the packaging of browser npm modules to fix an issue that occurred when using Cloud Storage with the Browserify and webpack module bundlers.

Version 3.6.2 - November 29, 2016

  • Updated file attributes in the Firebase npm package to be compatible with the Yarn Package Manager .
  • Updated the jsonwebtoken version used in the Firebase npm package.

Authentication

  • Fixed an issue that prevented user authentication states from persisting when using Firebase Authentication with React Native versions 0.37 and higher.

Version 3.6.1 - November 15, 2016

Storage

  • Reduced the SDK download size.
  • Fixed networking issues affecting React Native on Android.

Authentication

  • Added missing definitions for setCustomParameters() methods in the firebase.d.ts file for TypeScript users.

Version 3.6.0 - November 8, 2016

Authentication for Servers

  • SDK authentication with a service account on Node.js, and the corresponding token minting and verification methods, has been deprecated in favor of a new Node.js Admin SDK. To learn more, go to Admin SDK Setup . To see the Node.js Admin API reference, go to Admin SDK API Reference .

Authentication

  • Fixed an incorrect popup blocked error that occurred in the Chrome browser on iOS 7 and 8.

Version 3.5.3 - November 1, 2016

  • Reduced the SDK download size.

Authentication

  • Fixed issues with redirect and pop-up sign-in methods when using browsers that block third-party cookies and site data.

Version 3.5.2 - October 24, 2016

Authentication

  • Increase the request timeout interval for mobile devices to improve performance on high-latency networks.

Version 3.5.1 - October 19, 2016

Cloud Messaging

  • Added a check to validate the gcm_sender_id .
  • Fixed a race condition that occurs when using the Firefox web browser.

Version 3.5.0 - October 14, 2016

Authentication

Cloud Messaging

Version 3.4.1 - September 27, 2016

Realtime Database

  • Ensure that the SDK does not prevent Node.js from shutting down the process. Calling firebase.database().goOffline() or firebase.app().delete() should be sufficient for Node.js to exit now.
  • Fixed a bug where the database inadvertently created a global variable on the window object.
  • Use of the update() method now only cancels transactions that are directly included in the updated paths (not transactions in adjacent paths). For example, an update at /move for a child node walk will cancel transactions at / , /move , and /move/walk and in any child nodes under /move/walk . But, it will no longer cancel transactions at sibling nodes, such as /move/run .

Storage

  • Improved network utilization for file uploads.

Version 3.4.0 - September 14, 2016

Realtime Database

  • New Query.isEqual() method allows for comparing any Reference or Query for equality.

Version 3.3.2 - September 8, 2016

Authentication

Version 3.3.1 - September 7, 2016

  • Added an error message when attempting to use a service account in non-Node.js environments.

Authentication

  • Fixed backend error messages that were being truncated.
  • Fixed an error where user properties were not automatically refreshed on page reload.
  • The user's credential and email are now returned when account linking throws the following errors: auth/credential-already-in-use and auth/email-already-in-use .
  • Modified the Facebook login and OAuth grant permissions screen to work better in popup-sized windows.
  • This release has an issue with signInWithPopup() not working with Internet Explorer. You can continue to use version 3.3.0 or earlier until this is fixed in a future release.

Storage

  • Fixed an issue where contentType in custom metadata was being ignored for string-format uploads.

Version 3.3.0 - August 16, 2016

Authentication

  • Client Authentication APIs are now available in Node.js. When you call intializeApp() , pass a serviceAccount to use the Authentication for Servers APIs in your app, or pass an apiKey to use the client Authentication APIs.
  • Network error handling for sign in and link with popup operations.
  • Long popup cancellation timeouts.
  • When you use signInWithRedirect , the onAuthStateChanged observer now waits until getRedirectResult resolves before triggering. (In older versions, the observer would trigger twice: once when the page loaded, and a second time when getRedirectResult resolved.)

Realtime Database

  • A warning is no longer logged if you don't provide an apiKey when initializing the SDK and just want to have unauthenticated access to your Realtime Database. Security Rules are still in effect even if you do not provide an apiKey .

Storage

Version 3.2.1 - July 26, 2016

  • Typescript 2.0 type definitions added to npm package.

Authentication

  • Fixed issues with Safari private mode.
  • More detailed debugging messages for internal errors.

Version 3.2.0 - July 12, 2016

Storage

  • UploadTask can now be used like a Promise, and resolves with its snapshot data when the upload completes.

Authentication

  • Github login responsiveness.
  • Missing display names in profile scope for some Google accounts.

Authentication for Servers

  • Added uid to the decoded token returned by verifyIdToken() . It is set to the ID token's sub (subject) claim.

Version 3.1.0 - June 28, 2016

Authentication

  • Replace use of browser-specific APIs that were blocking use of React Native from the JavaScript SDK.
  • The Node.js SDK now supports unauthenticated access. If no service account is provided, Realtime Database access will be restricted just as any unauthenticated client would be. In this case, certain methods (like creating and verifying tokens) will throw an error.

Version 3.0.5 - June 14, 2016

Authentication

  • Fixed JSON parsing error when used in Chrome extensions.
  • Corrected server URLs used by library when using localhost for debugging.

Storage

  • Allows use of "gs://bucket" instead of "bucket" in storageBucket config.

Version 3.0.4 - June 7, 2016

Realtime Database

  • Updated the reference documentation to include more extensive API descriptions and examples.
  • Improved Realtime Database authentication-expiration retry logic.

Authentication

  • When using Firebase Web SDK in a non http or https environment (Cordova or Electron apps for instance), instead of raising a confusing error on initialization, it will silently ignore it. It will only throw an auth/operation-not-supported-in-this-environment error when trying to use unsupported operations ( signInWithPopup , signInWithRedirect , linkWithPopup , linkWithRedirect and getRedirectResult ).

Storage

  • Generate more specific error message when quota is exceeded.

Version 3.0.3 - May 24, 2016

Authentication

  • Improved error messages.

Authentication for Servers

  • Global Promise object is no longer overwritten.
  • Added error message when initializing the Node.js SDK with an invalid service account.

Version 3.0.2 - May 19, 2016

  • Browserify and webpack compatibility.

Version 3.0.1 - May 18, 2016

  • Node.js version 0.10 support.

Version 3.0.0 - May 18, 2016

Realtime Database

  • The way you install and initialize the SDK has changed and several APIs have been renamed. When you decide to upgrade, please see the Web Migration Guide for detail.
  • The way you install and initialize the Node.js has also changed. APIs have been renamed and you now authenticate using a service account instead of a secret or custom token. When you choose to upgrade, please see the Database Server SDK Setup Guide and use the Web Migration Guide to help you update your Node.js code to the latest APIs.

Authentication

  • The way you install and initialize the SDK has changed and most APIs have been renamed. When you decide to upgrade, please see the Web Migration Guide for details.
  • Node.js server SDK:
    • Token minting and verification for Firebase Authentication is now built into the server SDKs themselves instead of in separate token minting libraries.
    • All of the existing authentication methods have been removed. Instead, use the databaseAuthVariableOverride option (Node.js) or when initializing the SDK. See Installation & Setup for Servers for more details.
    • Use the Web Migration Guide or to help you update your Node.js or Java code to the latest APIs.

Storage

  • Initial release of Cloud Storage. Cloud Storage provides secure file uploads and downloads for your Firebase apps, regardless of network quality. You can use it to store images, audio, video, or other user-generated content. Cloud Storage is backed by Google Cloud Storage , a powerful, simple, and cost-effective object storage service.

Legacy release notes

Firebase 1.0 and 2.0 JavaScript Changelog