NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4157 most downloaded on npm
Firebase JavaScript library for web and Node.js
Last release today
06 Oct 2026
Ships on a steady schedule
a new release about every 3 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
2 versions withdrawn
withdrawn after publishing
15 years old
4222 releases · first in 2012
Fixed an issue where ES6 wildcard imports were breaking Closure Compiler (thanks @Doehl for the PR !)
Nothing published for this version
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Snapshot listeners (with the includeMetadataChanges option enabled) now receive an event with snapshot.metadata.fromCache set to true if the SDK loses
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.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fixed some regressions that were introduced in the typings refactor from the last release.
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.
Nothing published for this version
Refactored the typings setup across the SDK.
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.
Added new APIs firebase.auth.Auth.prototype.createUserAndRetrieveDataWithEmailAndPassword , firebase.auth.Auth.prototype.signInAndRetrieveDataWithCust
Added Node.js support for Cloud Firestore (with the exception of offline persistence).
Added Node.js support for Cloud Firestore (with the exception of offline persistence).
Refactor Webchannel integration to avoid extra CORS preflight requests.
Fixed an issue where localStorage errors were not being caught properly.
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.
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.
Updated dependency versions across the different sub packages.
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.
Added firebase.User.prototype.metadata which includes information about user creation time and last sign in time.
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
Fixed the validation of nested arrays to allow indirect nesting.
We now support FieldValue.delete() sentinels in set() calls with {merge:true} .
Fixed a regression where the react-native property was missing from the `firebase` package.json
react-native property was missing from the firebase package.jsonfirebase.SDK_VERSION wasn't properly being populated.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.
Shipped individual modules for the following packages:
Shipped individual modules for the following packages:
@firebase/app@firebase/auth@firebase/database@firebase/firestore@firebase/messaging@firebase/polyfill@firebase/storage@firebase/utilAdded support for Cloud Firestore. For more information, see the following resources:
Released multi-resource support for database #159
Fixed issue with typings for features released in 4.3.0
Added client side localization for email actions (password reset, email verification, etc), phone authentication SMS messages, OAuth flows and reCAPTC
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
Added ability to configure state persistence.
phoneNumber property on provideData objects.navigator.onLine for offline detection as
it is unstable in Cordova environments.toJSON
method.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.
Fixed an issue where authenticated realtime database access wasn't possible.
Refactored internal implementation of database to TypeScript. #72 and #66 (Thanks to @schmidt-sebastian, @mikelehen and @jsayol for their help in this
firebase-app.js, firebase-storage.js,
firebase-messaging.js. #94 (Shout out to @jsayol for this PR!)Fixed an issue where certain app names were invalid #70
signInWithRedirect were
cached even after the network connection stabilized. #67Fixed 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.
Fixed an issue where sourcemaps weren't pointing to the actual Typescript source code. #29
FirebaseAppImpl.prototype was being incorrectly
patched. #38webpackJsonp
namespace. #43Fixed 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.
Fixed an issue where the default storage bucket was not being initialized correctly. #26
Allow for lazy initialization of Firebase components (i.e. auth, database, storage, messaging). #15
Removed support for deprecated serviceAccount and credential properties from the Node.js SDK. If you were previously using the Firebase Javascript SDK…
firebase.auth.UserCredential) returned by the following APIs:
firebase.auth.Auth.prototype.onIdTokenChanged method that triggers on ID token changes.firebase.auth.Auth.prototype.onAuthStateChanged now triggers on sign in and sign out.firebase.User.prototype.reauthenticate has been removed in favor of firebase.User.prototype.reauthenticateWithCredential.firebase.User.prototype.link has been removed in favor of firebase.User.prototype.linkWithCredential.firebase.AuthCredential.prototype.provider has been removed in favor of firebase.AuthCredential.prototype.providerId.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.firebase.User.prototype.getToken in favor of firebase.User.prototype.getIdToken.firebase.User.prototype.updateProfile was not triggering an update in password provider data.Added support for phone number authentication using the following APIs:
PhoneAuthProvider
firebase.auth.Auth.prototype.signInWithPhoneNumber
firebase.User.prototype.linkWithPhoneNumber
firebase.User.prototype.reauthenticateWithPhoneNumber
Augmented the IdP data (for a list of all supported fields see firebase.auth.UserCredential ) returned by the following APIs:
firebase.auth.Auth.prototype.signInAndRetrieveDataWithCredential
firebase.User.prototype.linkAndRetrieveDataWithCredential
firebase.User.prototype.reauthenticateAndRetrieveDataWithCredential
Added the firebase.auth.Auth.prototype.onIdTokenChanged method that triggers on ID token changes.
Fixed an issue where new anonymous users were created on page load instead of returning an existing one.
Fixed an issue where firebase.User.prototype.updateProfile was not triggering an update in password provider data.
Deprecated firebase.User.prototype.getToken in favor of firebase.User.prototype.getIdToken .
BREAKING: firebase.auth.Auth.prototype.onAuthStateChanged now triggers on sign in and sign out.
BREAKING: firebase.User.prototype.reauthenticate has been removed in favor of firebase.User.prototype.reauthenticateWithCredential .
BREAKING: firebase.User.prototype.link has been removed in favor of firebase.User.prototype.linkWithCredential .
BREAKING: firebase.AuthCredential.prototype.provider has been removed in favor of firebase.AuthCredential.prototype.providerId .
Deprecated firebase.auth.authCredential.prototype.provider in favor of the firebase.auth.AuthCredential.prototype.providerId property.
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.
Deprecated firebase.User.prototype.link in favor of the firebase.User.prototype.linkWithCredential method.
Added new APIs reauthenticateWithPopup and reauthenticateWithRedirect for reauthenticating with an OAuth provider using a popup or a redirect.
Added the operationType property to the firebase.auth.UserCredential object to determine if the result was obtained from a signIn , link or reauthenticate operation.
Added support for Cordova OAuth sign-in using the signInWithRedirect , linkWithRedirect , and reauthenticateWithRedirect methods.
Deprecated firebase.User.prototype.link in favor of the firebase.User.prototype.linkWithCredential method.
Deprecated firebase.User.prototype.reauthenticate in favor of the firebase.User.prototype.reauthenticateWithCredential method.
Fixed an issue where npm-shrinkwrap.json was not being generated correctly.
Fixed an issue where undefined symbols caused an error to be thrown in older browsers.
Fixed an issue where removal of a legacy options object broke older clients.
Provide higher-granularity progress updates for object uploads.
Fixed an issue where firebase.database().ref().push() , would trigger an infinite loop if the returned .then() function was called.
Fixed error messaging for invalid calls to Query.equalTo() .
Fixed an issue where some components erroneously allowed creation of multiple instances.
Updated firebase.auth().signInWithPopup() to work properly in Chrome extensions.
Updated firebase.auth().signInWithPopup() to work properly in Chrome extensions.
Improved session handling for prolonged usage of the Realtime Database .
Added support for using multiple buckets within Cloud Storage .
Fixed an issue where the catch() method didn't exist on UploadTask .
Fixed an issue that broke firebase.auth().signInWithCredential() in a browser environment when the current URL has the OAuth 2.0-specific state query
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 o
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.
Improved Firebase app errors to return error codes prefixed with app/ consistent with other Firebase service errors.
Your coding agent can read these notes before it upgrades. Set up the MCP server →