Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Notas de la versión del SDK de Firebase JavaScript

Para revisar las notas de la versión para la consola de Firebase y para otras plataformas de Firebase y SDK relacionados, consulte las Notas de la versión de Firebase .

Versión 7.17.1 - 24 de julio de 2020

Analítica

Versión 7.17.0 - 23 de julio de 2020

Analítica

  • Se agregó un método analytics.isSupported() que devuelve verdadero si el contexto actual del navegador es compatible con Analytics. Esto se puede usar de forma condicional para evitar la inicialización de Analytics en entornos que no lo admiten. Esta comprobación también se ejecuta automáticamente cuando se inicializa Analytics ( firebase.analytics() ) y si encuentra un entorno no compatible, arroja un error que aconseja a los desarrolladores que usen isSupported() . Resuelve el problema de GitHub # 2393 .

Almacenamiento

  • Los mensajes de error para errores de backend ahora incluyen el mensaje de respuesta del backend.

Versión 7.16.1 - 16 de julio de 2020

Cloud Firestore

  • El SDK ya no se bloquea si se produce un error de IndexedDB al darse de baja de una Query .

  • Se eliminó un retraso que impedía que Firestore restableciera inmediatamente una conexión de red si se producía un cambio de conectividad mientras la aplicación estaba en segundo plano.

Base de datos en tiempo real

  • En lugar de usar la autenticación de producción, el SDK usará credenciales de prueba para conectarse al Emulador cuando se use Realtime Database a través del Firebase Admin SDK. Soluciona el problema de GitHub # 3144 .

Almacenamiento

  • Se actualizaron los tipos de TypeScript para todas las API utilizando Observer s para permitir la omisión de devolución de llamada. Soluciona el problema de GitHub # 3158 .

Autenticación

  • Se agregó el campo del browser en package.json.

Versión 7.16.0 - 09 de julio de 2020

Cloud Firestore

  • Se agregó soporte para set() con opciones de fusión al usar FirestoreDataConverter .

  • Vuelva a agregar el paquete React Native, que permite que Cloud Firestore se use sin btoa/atob .

  • Se eliminó el contenedor interno alrededor de nuestra API pública que estaba destinado a evitar el uso incorrecto del SDK para los usuarios de JavaScript, pero que hizo que el SDK dejara de funcionar en IE11. Ver el número de GitHub # 3305 .

FCM

  • Se solucionó un problema en el que intentamos actualizar el token para cada llamada getToken() porque no guardamos el token actualizado en IndexedDB .

  • Se solucionó un problema de incompatibilidad de RxJS al agregar compatibilidad con onMessage para que la devolución de llamada interna pueda funcionar con el Subscriber de RxJS. Ver el número de GitHub # 3142 .

Funciones en la nube para Firebase Client SDK

  • Borrar el tiempo de espera después de una respuesta exitosa o después de que se cancela la solicitud. Soluciona el problema de GitHub # 3289 .

Versión 7.15.5 - 25 de junio de 2020

Cloud Firestore

  • Se corrigió un error que a veces causaba que las operaciones de Cloud Firestore fallaran durante un cambio de token de autenticación. Ver el número de GitHub # 3179

Versión 7.15.4 - 20 de junio de 2020

Cloud Firestore

  • Se eliminó el punto de entrada React Native debido a un problema en nuestra biblioteca interna. Para Cloud Firestore en React Native, use la compilación del navegador y agregue los polyfills necesarios. Ver el número 2667 de GitHub

Versión 7.15.3 - 19 de junio de 2020

Cloud Firestore

  • Se solucionó un problema que impedía que Cloud Firestore funcionara en React Native. Ver el número 2667 de GitHub

Versión 7.15.2 - 18 de junio de 2020

Base de datos en tiempo real

  • Se agregó un encabezado HTTP interno a la conexión WebSocket.

Cloud Firestore

  • Se actualizó grpc-js a la versión ^1.0.0 .

Versión 7.15.1 - 11 de junio de 2020

Cloud Firestore

Versión 7.15.0 - 04 de junio de 2020

Cloud Firestore

  • Se agregó una configuración experimentalForceOwningTab que se puede usar para habilitar la persistencia en entornos sin localStorage , lo que permite que la persistencia se use en Web Workers. Consulte el número 983 de GitHub .

  • Todos los casos de falla conocidos para bloqueos relacionados con IndexedDB ahora se han abordado. En lugar de bloquear el cliente, las fallas de IndexedDB resultan en operaciones rechazadas (por ejemplo, Writes rechazadas o escuchas de Query errores). Si estos rechazos aparecen en su aplicación, puede volver a intentar estas operaciones cuando se restablezca el acceso IndexedDB . IndexedDB fallas de IndexedDB que se producen debido al trabajo en segundo plano se reintentan automáticamente.

    Si continúa viendo fallas relacionadas con IndexedDB , por favor envíe sus comentarios sobre el problema # 2755 de GitHub .

Versión 7.14.6 - 29 de mayo de 2020

Cloud Firestore

  • Se solucionó un problema que podía causar que Cloud Firestore se desconectara temporalmente cuando ocurría un evento de visibilidad de Windows.

  • Se agregó soporte para llamar a FirebaseFiresore.settings con { ignoreUndefinedProperties: true } . Cuando se establece este parámetro, Cloud Firestore ignora las propiedades indefinidas dentro de los objetos en lugar de rechazar la llamada a la API.

Versión 7.14.5 - 21 de mayo de 2020

Base de datos en tiempo real

  • Se corrigió un error de análisis de URL de la base de datos en tiempo real para admitir dominios con más de 3 componentes.

Versión 7.14.4 - 14 de mayo de 2020

Cloud Firestore

  • Se corrigió una regresión introducida en v7.14.2 que aplicaba incorrectamente un FieldValue.increment en combinación con set({...}, {merge: true}) .

Versión 7.14.3 - 07 de mayo de 2020

Cloud Firestore

  • Cloud Firestore ahora rechaza los oyentes onSnapshot() si no pueden registrarse en IndexedDB . Anteriormente, estos errores bloqueaban al cliente.

Versión 7.14.2 - 23 de abril de 2020

Cloud Firestore

  • Firestore ahora rechaza las operaciones de escritura si no se pueden persistir en IndexedDB. Anteriormente, estos errores bloqueaban al cliente.

  • Se corrigió una fuente de bloqueos relacionados con IndexedDB para pestañas que reciben notificaciones de múltiples pestañas mientras el sistema de archivos está bloqueado.

FCM

  • Se modificó para comparar el nombre de host en lugar de la URL completa para decidir si hay un cliente de ventana coincidente. Ver el número GitHub # 390 .

Versión 7.14.1 - 16 de abril de 2020

Almacenamiento

  • Se solucionó un problema que ocurría cuando los usuarios intentaban recuperar datos de varias instancias de almacenamiento.

Autenticación

  • Se corrigió un error que ocurría cuando los usuarios configuraban la persistencia en LOCAL en un entorno de trabajo. Ver el número GitHub # 2903 .

Versión 7.14.0 - 9 de abril de 2020

Cloud Firestore

  • Se reemplazó grpc con @grpc/grpc-js en las compilaciones de Node.js. Como resultado, la versión mínima de NodeJS compatible ahora es 8.13.0 .

Base de datos en tiempo real

  • Se agregó ServerValue.increment() para admitir incrementos de valor de campo atómico sin transacciones.

Supervisión del rendimiento

  • Mecanismo de transporte de eventos de rendimiento interno actualizado.

Versión 7.13.2 - 2 de abril de 2020

Cloud Firestore

  • Se corrigió una regresión introducida por un cambio criptográfico en 7.13.0 que rompe Firestore en IE 11. Vea el problema GitHub # 2827 .

  • Se solucionó un problema que causa lecturas excesivas en grandes conjuntos de cambios en conexiones lentas. Ver el número 2683 de GitHub .

  • Se solucionó un problema que WriteBatch.commit() que WriteBatch.commit() resolviera un bucle más tarde que .set y .update . Ver el número de GitHub # 2822 .

FCM

  • Se solucionó un problema introducido en 7.7.0, cuando FCM cambió para proporcionar claves VAPID codificadas en base64 a PushManager para la suscripción push. Por compatibilidad con versiones anteriores, el SDK ha vuelto a usar claves VAPID en el tipo ArrayBuffer . Ver la edición de Github # 2712 .

Versión 7.13.1 - 27 de marzo de 2020

Cloud Firestore

  • Se eliminó una coma colgante en package.json.

Versión 7.13.0 - 26 de marzo de 2020

Cloud Firestore

  • Se agregó una compilación de firestore solo de memoria. En lugar de datos persistentes en IndexedDB , los guarda en la memoria. Esta compilación es aproximadamente un 14% más pequeña que la compilación con todas las funciones porque no tiene código relacionado con IndexedDB . Si no le importan los datos persistentes en las sesiones, o si su código se ejecuta en entornos que no admiten IndexedDB , use esta compilación para reducir el tamaño de su aplicación. Está disponible bajo una ruta de importación especial. Puedes importarlo de esta manera:

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

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

    O si usa el 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. -->
    

Analítica

  • Se agregaron enumeraciones convenientes y sobrecargas de funciones para admitir eventos de comercio electrónico mejorados.

Versión 7.12.0 - 19 de marzo de 2020

  • Se agregaron dos métodos para iniciar sesión:
    • firebase.setLogLevel() , que establece el nivel por encima del cual se mostrarán los mensajes de registro de Firebase.
    • firebase.onLog() , que agrega una devolución de llamada especificada por el usuario en cada evento de registro. La devolución de llamada tiene acceso al nivel de registro, mensaje y nombre del paquete (por ejemplo, "@ firebase / firestore") que generó el mensaje de registro.

Cloud Firestore

  • Se solucionó un problema por el cual el valor -0.0 perdería su signo cuando se almacena en Cloud Firestore.

Versión 7.11.0 - 12 de marzo de 2020

Autenticación

Versión 7.10.0 - 5 de marzo de 2020

Cloud Firestore

  • Se implementó Timestamp.valueOf() para que los objetos de Timestamp se puedan comparar para un orden relativo utilizando los operadores de comparación aritmética de JavaScript. Soluciona el problema # 2632 de GitHub .

Versión 7.9.3 - 28 de febrero de 2020

Almacenamiento

  • Se solucionó un problema introducido en 7.9.2 en el que Storage podía generar un error CORS ( problema de GitHub ).

Versión 7.9.2 - 27 de febrero de 2020

Cloud Firestore

  • Se OnlineState un problema por el cual el valor de OnlineState estaba destrozado y no se analizaba correctamente.

Versión 7.9.1 - 21 de febrero de 2020

Cloud Firestore

  • Se corrigió un problema introducido en 7.9.0 donde los paquetes de Cloud Firestore Node y CJS minificados no funcionan.

Versión 7.9.0 - 20 de febrero de 2020

Cloud Firestore

  • La versión minimizada de la biblioteca Cloud Firestore, agregada como una opción experimental en 7.8.0, ahora es el paquete predeterminado de Cloud Firestore. Los pasos enumerados en las notas de la versión 7.8.0 ya no son necesarios para obtener el paquete minimizado. Esta minificación actualmente reduce el tamaño total del paquete en aproximadamente un 15% a partir de esta compilación.

  • Se solucionó un problema por el cual las credenciales de autenticación no se respetaban en los entornos de Cordova. Ver el número 2626 de Github .

  • Se Query.limitToLast(n: number) una regresión de rendimiento introducida por la adición de Query.limitToLast(n: number) en Firestore 1.7.0 (Firebase 7.3.0). Ver el número 2620 de Github .

FCM

  • Solucione un problema en el que los trabajadores del servicio no actualicen de manera confiable después de actualizar a una nueva versión de Firebase. Ver el número de Github # 2590 .

Versión 7.8.2 - 13 de febrero de 2020

Cloud Firestore

  • Se solucionó un problema por el cual CollectionReference.add() rechazaba los tipos personalizados al usar withConverter() . Problema de Github # 2606 .

Versión 7.8.1 - 6 de febrero de 2020

Cloud Firestore

Versión 7.8.0 - 30 de enero de 2020

Cloud Firestore

  • Experimental: se agregó una importación minificada alternativa para el paquete de almacén de firestore . Los usuarios que quieran probar esta importación experimental pueden hacerlo de esta manera:

    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.
    

    O si usa el 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. -->
    

Versión 7.7.0 - 16 de enero de 2020

Cloud Firestore

  • Se solucionó un problema por el cual las credenciales de autenticación no se respetaban en algunas extensiones de Firefox o Chrome. Ver el número de Github # 1491 .

  • Firestore previamente requería que cada documento leído en una transacción también se debe escribir. Este requisito se ha eliminado y ahora puede leer un documento en una transacción sin escribirlo.

Supervisión del rendimiento

  • Protocolo de transporte interno actualizado de proto2 a proto3.

Autenticación

  • Se agregó el constructor faltante para el tipo SAMLAuthProvider .

Versión 7.6.2 - 9 de enero de 2020

Funciones en la nube para Firebase Client SDK

  • Se corrigió un error que causaba que aparecieran solicitudes de permisos de notificación al usar functions.httpsCallable() .

Base de datos en tiempo real

  • Se revirtió un cambio que causaba un rendimiento de actualización lento como se informó en el problema # 2487 de Github .

Cloud Firestore

  • Se solucionó un problema por el cual las credenciales de autenticación no se respetaban en ciertos entornos de navegador (Electron 7, IE11 en la zona de confianza, aplicaciones UWP). Resuelve el problema de Github # 1491 .

Versión 7.6.1 - 18 de diciembre de 2019

Base de datos en tiempo real

  • Se solucionó un problema de escritura interna en el que la biblioteca firebase-admin , que depende de @firebase/database , no se @firebase/database .

Versión 7.6.0 - 12 de diciembre de 2019

Cloud Firestore

  • Se agregó soporte para almacenar y recuperar tipos personalizados en Cloud Firestore. Se agregó soporte para colecciones, documentos y consultas fuertemente tipados. Ahora puede usar withConverter() para proporcionar un convertidor de datos personalizado que convertirá entre los datos de Cloud Firestore y su tipo personalizado.

  • Se agregó una verificación de entorno más fuerte que verifica específicamente la existencia de process.env . Resuelve el problema de Github # 2404 .

FCM

  • getToken() ahora solicita automáticamente permiso de notificación si el permiso se estableció en "predeterminado".

  • Suprimir temporalmente los errores que se producen al restablecer los permisos de notificaciones, en espera de una solución de back-end. Soluciona el problema de Github # 2364 .

Prueba de SDK

Versión 7.5.2 - 6 de diciembre de 2019

Base de datos en tiempo real

  • Se @firebase/component un problema introducido en 7.5.1 donde @firebase/component no aparece como una dependencia. Causó "No se puede encontrar el módulo @firebase/component " en el paquete firebase-admin , que depende de Realtime Database.

Versión 7.5.1 - 5 de diciembre de 2019

  • Se solucionó un problema por el cual escribir undefined en el IDE solicita que se importe automáticamente desde el paquete firebase. Direcciones # 2203 (enlace GitHub) . Gracias camsjams por la contribución !

  • Se corrigió un error en el que objectVal de objectVal devolvería un objeto vacío si el resultado de snapshot.val() no es un objeto.

Configuración remota

  • Se corrigió un error en el que las promesas devueltas por fetch() y fetchAndActivate() no se rechazaban con errores causados ​​por indexeddb operaciones indexeddb . Ahora puede manejar estos errores en el controlador de errores de la promesa devuelta.

Versión 7.5.0 - 21 de noviembre de 2019

Cloud Firestore

  • Se mejoró el rendimiento de las consultas ejecutadas repetidamente cuando la persistencia está habilitada. Las consultas ejecutadas recientemente deberían ver mejoras dramáticas. Este beneficio se reduce si los cambios se acumulan mientras la consulta está inactiva. Las consultas que usan la API limit() pueden no siempre beneficiarse, dependiendo de los cambios acumulados.

Versión 7.4.0 - 14 de noviembre de 2019

Autenticación

  • Se agregó compatibilidad nonce para el inicio de sesión con credenciales de token de ID OIDC.
  • Se agregó el soporte de inicio de sesión de OAuth para aplicaciones servidas desde orígenes con el esquema ionic:// para el último marco iónico.

Analítica

  • Se corrigió un error por el cual Analytics no funcionaba con Google Tag Manager en la misma página.

Cloud Firestore

  • El operador in query ahora acepta matrices anidadas.

Versión 7.3.0 - 7 de noviembre de 2019

Cloud Firestore

  • Añadido in e array-contains-any operadores de consulta para su uso con .where() . El operador in busca documentos donde el valor de un campo especificado se encuentra en una matriz especificada. El operador array-contains-any busca documentos donde un campo específico es una matriz y contiene cualquier elemento de una matriz específica.
  • Se agregó Query.limitToLast(n: number) que devuelve los últimos n documentos como resultado.

Versión 7.2.3 - 31 de octubre de 2019

  • Manejo mejorado de errores en llamadas de instalaciones.

Cloud Firestore

  • El cliente ahora puede recuperarse si fallan ciertas operaciones periódicas de IndexedDB. Direcciones # 2232 (enlace de GitHub) .

Analítica

  • Se agregaron firmas de sobrecarga faltantes para logEvent cuando se usan los nombres de eventos estándar add_payment_info y page_view .

Versión 7.2.2 - 24 de octubre de 2019

  • Se corrigió un error de detección de cambio en rxFire.
  • Cambió a ref.isEqual al comparar documentos para admitir grupos de recopilación para Cloud Firestore en rxFire.

Cloud Firestore

  • Soporte mejorado para iOS 13 al eliminar un bloqueo adicional en nuestra capa de persistencia IndexedDB.

Versión 7.2.1 - 16 de octubre de 2019

Cloud Firestore

  • Se corrigió un bloqueo en iOS 13 que ocurría cuando se habilitaba la persistencia en una pestaña de fondo.
  • Se solucionó un problema en la interacción con el emulador Firestore que causaba que las solicitudes con marcas de tiempo fallaran.

Versión 7.2.0 - 10 de octubre de 2019

  • El método Installations.getToken() ahora acepta un parámetro forceRefresh opcional.

Configuración remota

  • Se corrigió la ruta del script main en el archivo package.json .

Versión 7.1.0 - 3 de octubre de 2019

Cloud Firestore

  • Se agregó un método Firestore.onSnapshotsInSync() que le notifica cuando todos sus oyentes de instantáneas están sincronizados entre sí.

  • Se corrigió una regresión que causaba que las consultas con filtros de campo anidados bloquearan al cliente si el campo no estaba presente en la copia local del documento.

Base de datos en tiempo real

  • Se solucionó un problema que causaba que los valores numéricos grandes con ceros a la izquierda no siempre se ordenaran correctamente.

Analítica

  • Se corrigió un error por el cual firebase.analytics() no estaba disponible al importar firebase como un paquete todo en uno.

  • El eventParams para logEvent() ahora es opcional.

Versión 7.0.0 - 26 de septiembre de 2019

  • Cambio de última hora: para los usuarios de TypeScript, la versión mínima requerida de TypeScript es 2.8.0.

FCM

  • Cambio de última hora: la versión 7.0.0 introduce un nuevo servicio relacionado con el registro de la instancia de la aplicación cliente. Si actualmente utiliza FCM para web y desea actualizar a SDK 7.0.0 o posterior, debe habilitar la API de registro de FCM para su proyecto en Google Cloud Console.

    Cuando habilite este servicio, asegúrese de haber iniciado sesión en Cloud Console con la misma cuenta de Google que usa para Firebase, y asegúrese de seleccionar el proyecto correcto.

    También asegúrese de que projectId , apiKey , appId y messagingSenderId estén presentes en la configuración de su aplicación. Vea cómo obtener el objeto de configuración de su aplicación .

    No se requieren otras tareas de migración; Una vez que la API esté habilitada, las aplicaciones anteriores a la 7.0.0 continuarán funcionando normalmente.

    Los nuevos proyectos que agregan el SDK de FCM tienen este servicio habilitado de forma predeterminada.

  • La versión 7.0.0 presenta la orientación de aplicaciones web para mensajes FCM enviados desde el compositor de notificaciones. Ahora puede orientar los mensajes de notificación web por tipo y versión de navegador, así como por sistema operativo. Consulta Enviar mensajes con Firebase Console .

Analítica

Configuración remota

Versión 6.6.2 - 19 de septiembre de 2019

Cloud Firestore

  • Se corrigió una regresión introducida en 6.6.0 donde Document.toString() arroja un error.

Versión 6.6.1 - 12 de septiembre de 2019

Base de datos en tiempo real

  • Limpieza interna de código que admite Node.js.

Versión 6.6.0 - 5 de septiembre de 2019

Autenticación

  • Se agregó soporte para multicliente para desarrolladores de Google Cloud Identity Platform.

Cloud Firestore

  • Se corrigió una condición de carrera entre la autenticación e inicialización de Firestore que podía provocar que se cayeran las escrituras iniciales en la base de datos.

Versión 6.5.0 - 23 de agosto de 2019

Cloud Firestore

  • Se agregó un método Firestore.waitForPendingWrites() que permite a los usuarios esperar hasta que el backend de Firestore reconozca todas las escrituras pendientes.
  • Se agregó un método Firestore.terminate() que finaliza la instancia, liberando los recursos retenidos. Una vez que se complete, opcionalmente puede llamar a Firestore.clearPersistence() para borrar los datos persistentes de Firestore del disco.

Versión 6.4.2 - 23 de agosto de 2019

  • Se cambió fromRef , 'fromDocRef' y fromCollectionRef para aceptar un parámetro de option en rxFire.

Supervisión del rendimiento

  • Se corrigió una regresión introducida en 6.4.1 donde las colecciones de métricas integradas arrojaban errores.

Versión 6.4.1 - 22 de agosto de 2019

  • El SDK ya no arroja un error en el registro de servicio duplicado. Esto simplifica los casos en que múltiples componentes dependen internamente de otro componente y cada uno puede intentar registrarlo.

Cloud Firestore

  • Las transacciones ahora realizan un retroceso exponencial antes de volver a intentar. Esto significa que las transacciones en documentos altamente disputados tienen más probabilidades de tener éxito.

Supervisión del rendimiento

  • La supervisión del rendimiento ahora valida las métricas y los atributos de rendimiento antes de almacenarlos.

Versión 6.4.0 - 15 de agosto de 2019

Base de datos en tiempo real

  • Al analizar la URL de la base de datos en tiempo real, el parámetro de consulta URL ns se tratará como el nombre predeterminado del espacio de nombres de la base de datos en tiempo real.
  • Se solucionó un problema que causaba que los eventos .info/serverTimeOffset no se .info/serverTimeOffset .

Versión 6.3.5 - 8 de agosto de 2019

Autenticación

  • Se solucionó un problema por el cual los resultados de redireccionamiento en caché no se signOut() después de llamar a signOut() o getRedirectResult() .

Versión 6.3.4 - 1 de agosto de 2019

Base de datos en tiempo real

  • Se solucionó un problema por el cual los caracteres UTF-8 de varios bytes no se escribían correctamente al usar firebase.js o firebase-database.js .

Versión 6.3.3 - 26 de julio de 2019

Base de datos en tiempo real

  • Se corrigió una regresión introducida en v6.3.2 que causaba errores cuando se ejecutaba en un entorno de navegador.

Versión 6.3.2 - 25 de julio de 2019

Base de datos en tiempo real

  • Se agregó una variable de entorno ( FIREBASE_DATABASE_EMULATOR_HOST ) que permite a los desarrolladores apuntar el SDK del emulador de base de datos a una instancia de emulador de base de datos local.

Supervisión del rendimiento

  • El SDK se ha actualizado para manejar mejor los errores cuando la biblioteca de Performance Monitoring se importa en un entorno sin un objeto de window (como el lado del servidor de una aplicación SSR) o una instancia de Performance Monitoring se inicializa en dicho entorno.

Versión 6.3.1 - 18 de julio de 2019

Cloud Firestore

  • Las transacciones ahora son más flexibles. Ahora se permiten algunas secuencias de operaciones que anteriormente no se permitían incorrectamente. Por ejemplo, después de leer un documento que no existe, ahora puede configurarlo varias veces con éxito en una transacción.

  • Se solucionó un problema en el que los resultados de la consulta eran documentos que faltaban temporalmente, que anteriormente no coincidían pero que se habían actualizado para que ahora coincidan con la consulta.

Versión 6.3.0 - 11 de julio de 2019

Supervisión del rendimiento

  • Se solucionó un problema que causaba errores durante la carga de la página en entornos de navegador que no admiten IndexedDB (como cuando las cookies están deshabilitadas).

Versión 6.2.4 - 27 de junio de 2019

Supervisión del rendimiento

  • Se solucionó un problema en el que la supervisión del rendimiento arroja una excepción en entornos no compatibles. Ahora, la supervisión del rendimiento no se inicializará en entornos no compatibles.

Versión 6.2.3 - 24 de junio de 2019

Autenticación

  • Se corrigió un error que causaba errores en el nodo.

Cloud Firestore

  • Se solucionó un problema que causaba que algunas consultas no devolvieran resultados

Versión 6.2.2 - 21 de junio de 2019

  • Cambio revertido en la forma en que el paquete React Native importa AsyncStorage ya que estaba causando errores.

Cloud Firestore

  • Los mensajes de error son más informativos para los errores de AsyncQueue en iOS.

Versión 6.2.1 - 20 de junio de 2019

  • Se actualizó el paquete React Native para intentar primero importar el módulo AsyncStorage del paquete comunitario recomendado, si está disponible, en lugar de la versión ahora obsoleta incluida con el núcleo React Native.

  • Se corrigió un error en la verificación del entorno de Firebase que puede causar errores cuando Firebase está incluido en el código del usuario (usando herramientas como Rollup).

Cloud Firestore

  • Se solucionó un problema que causaba errores en entornos a los que les falta window.addEventListener , como React Native con Expo.

Almacenamiento

  • Se corrigió un tipo incorrecto en los parámetros Reference.put() .

Versión 6.2.0 - 13 de junio de 2019

Cloud Firestore

  • Se agregó clearPersistence() , que borra el almacenamiento persistente, incluidas las escrituras pendientes y los documentos en caché. Esto está destinado a ayudar a escribir pruebas confiables.

  • Se agregó un registro y un mensaje de error personalizado para ayudar a los usuarios que acceden a https://bugs.webkit.org/show_bug.cgi?id=197050 (un error en iOS 12.2 que hace que el SDK se bloquee potencialmente cuando se habilita la persistencia).

Versión 6.1.1 - 6 de junio de 2019

  • Realizamos algunas refactorizaciones internas para mejorar la seguridad de tipos y la generación de documentación.

Versión 6.1.0 - 28 de mayo de 2019

Cloud Firestore

  • Se solucionó un problema en el que fallaba una comprobación de entorno en entornos Node.js.

Almacenamiento

  • Se agregó la capacidad de enumerar objetos en un cubo.

Mensajería en la nube

  • requestPermission() . Utilice la API nativa del navegador Notification.requestPermission() lugar.

Versión 6.0.4 - 23 de mayo de 2019

  • La comprobación del entorno del navegador ahora puede detectar un entorno de trabajo web.

  • @firebase/app-types y @firebase/util ahora son dependencias directas del paquete principal de firebase .

Cloud Firestore

  • Cloud Firestore volverá con gracia a la persistencia de la memoria cuando el usuario esté en Firefox Private Browsing.

  • Cloud Firestore ahora se recupera más rápidamente después de los cambios de conectividad de red (modo avión, disponibilidad de Wi-Fi, etc.).

Versión 6.0.2 - 9 de mayo de 2019

  • La comprobación del entorno del navegador ahora funciona correctamente sin generar un error en entornos que no sean del navegador.

Cloud Firestore

  • Se actualizó gRPC a 1.20.3 para admitir Node.js 12 y Electron v5.0.

Versión 6.0.1 - 8 de mayo de 2019

Autenticación

  • Se corrigió una regresión introducida en 6.0.0 que causaba que el código tuviera acceso a una propiedad eliminada.

Versión 6.0.0 - 7 de mayo de 2019

  • Cambio de última hora: se eliminaron polyfills en el paquete de Firebase. Ahora los desarrolladores deben decidir qué polyfills incluir en función de los entornos que necesitan soportar. Esto garantiza que solo se incluyan rellenos de polietileno necesarios, lo que reduce el tamaño de la aplicación. Ver Apoyo al medio ambiente .

Autenticación

  • Cambio de última hora : se eliminaron las API desaprobadas anteriormente.

    Remoto Reemplazado por
    signInAndRetrieveDataWithCustomToken signInWithCustomToken
    signInAnonymouslyAndRetrieveData signInAnonymously
    createUserAndRetrieveDataWithEmailAndPassword createUserWithEmailAndPassword
    signInAndRetrieveDataWithEmailAndPassword signInWithEmailAndPassword
    fetchProvidersForEmail fetchSignInMethodsForEmail
  • Cambio de última signInWithCredential : se actualizó la firma de tipo de retorno para signInWithCredential y linkWithCredential a una promesa que se resuelve con una UserCredential lugar de un User .

  • Se cambió reauthenticateWithCredential para devolver una promesa que se resuelve con una UserCredential .

  • En desuso las siguientes API

    Obsoleto Utilizar en su lugar
    signInAndRetrieveDataWithCredential signInWithCredential
    linkAndRetrieveDataWithCredential linkWithCredential
    reauthenticateAndRetrieveDataWithCredential reauthenticateWithCredential

Cloud Firestore

  • Ahora puede consultar todas las colecciones de su base de datos con un ID de colección determinado utilizando el método FirebaseFirestore.collectionGroup() .

  • En desuso la configuración experimentalTabSynchronization a favor de synchronizeTabs . Si utiliza la sincronización de múltiples pestañas, se recomienda que actualice su llamada para enablePersistence() . Firestore registra un error si continúa utilizando experimentalTabSynchronization .

Base de datos en tiempo real

  • Cambio de última Query.on : consistencia mejorada entre las anotaciones de tipo para Query.on / Reference.on , Query.off / Reference.off y Query.once / Reference.once .

Supervisión del rendimiento

  • Esta versión contiene el nuevo SDK de Performance Monitoring Client. Visite la guía de inicio de la supervisión del rendimiento para la Web.

Versión 5.10.1 - 25 de abril de 2019

Autenticación

  • Se solucionó un problema por el cual los eventos de autenticación duplicados podían causar errores al usar signInWithPopup() .
  • Se solucionó un problema por el cual el SDK podía fallar al detectar que estaba en un entorno de trabajador de servicio.
  • Se agregó un mensaje de error que aparece cuando el cliente intenta realizar una operación solo de administrador.

Cloud Firestore

  • Habilitó el SDK para reconocer versiones anteriores de iOS Safari y Android al verificar si se puede habilitar la persistencia.

Versión 5.10.0 - 18 de abril de 2019

Autenticación

  • Se agregaron métodos de serialización y deserialización a las clases AuthCredential.

Cloud Firestore

  • Se agregó una configuración experimentalForceLongPolling que se puede usar para evitar proxies que evitan que el cliente de Firestore se conecte al backend de Firestore.

Versión 5.9.4 - 11 de abril de 2019

Almacenamiento

  • Se UploadTask.on() una definición de tipo incorrecta en los UploadTask.on() de UploadTask.on() .

Versión 5.9.3 - 4 de abril de 2019

Mensajería en la nube

  • Refactorizado para usar const enum para ErrorCode .

Versión 5.9.2 - 28 de marzo de 2019

Cloud Firestore

  • Se agregó una definición de tipo faltante para firestore.FieldValue.increment .

Versión 5.9.1 - 21 de marzo de 2019

Cloud Firestore

  • Aumentó el tiempo de espera de conexión que podría llevar a grandes escrituras reintentando perpetuamente sin tener éxito.

  • Se solucionó un problema por el cual las transacciones en una aplicación NodeJS podían enviarse sin credenciales de autenticación, lo que provocaba errores de permiso denegado.

  • 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