To review release notes for the Firebase console and for other Firebase platforms and related SDKs, refer to the Firebase Release Notes.
Version 12.2.1 - August 28, 2025
AI Logic
- Fixed an issue that caused TypeScript compilation errors.
Version 12.2.0 - August 28, 2025
AI Logic
Add support for the Gemini Live API.
Add
thoughtSummary()
convenience method toEnhancedGenerateContentResponse
.Add support for limited-use tokens with Firebase App Check. These limited-use tokens are required for an upcoming optional feature called replay protection. We recommend enabling the usage of limited-use tokens now so that when replay protection becomes available, you can enable it sooner because more of your users will be on versions of your app that send limited-use tokens.
Fixed an issue where
AIError
messages were too long after including an entire response body.Added
'includeSafetyAttributes'
field toPredict
request payloads.Excluded
ChromeAdapterImpl
code from Node entry point.
Cloud Firestore
- Fixed a bug where a rejected promise with an empty message in a transaction would cause a timeout. See GitHub Issue #9147.
Cloud Functions for Firebase Client SDK
- Fixed an issue which caused a CORS error in Firebase Studio when connected to emulators.
Version 12.1.0 - August 7, 2025
AI Logic
- Added hybrid inference options to AI Logic. This provides options to perform inference tasks using the Prompt API in browsers that have the Prompt API enabled.
Performance Monitoring
- Fixed errors thrown when capturing long target element names for out-of-the-box metrics. See GitHub Issue #9136.
Version 12.0.0 - July 17, 2025
Updated Node.js "engines" version to require a minimum of Node 20.
Updated the SDK to use ES2020. Developers whose apps are not using ES2020 or higher may need to update their tooling or configuration.
Removed the
firebase/vertexai
import alias. All the functionality is still available under the new name:firebase/ai
, although some methods may be renamed (see AI Logic notes below).
AI Logic
Removed methods and symbols with the
VertexAI
name in them such asgetVertexAI
orVertexAIError
. These were deprecated in 11.8.0 and were just wrappers on the newly introduced methods with theAI
name, such asgetAI
orAIError
.Added support for Grounding with Google Search.
Added support for the Thinking Budget feature.
Added support for
anyOf
schemas.Converted each
enum
export to a combination of aconst
map and a string literal type. This makes the constants available to non-TypeScript users and allows tree-shaking of unused variables.Removed
GroundingAttribution
, which had previously been deprecated.Fixed typings for
functionDeclaration.parameters
to prevent the use ofoptionalProperties
when using an object literal.
Cloud Firestore
Reverted a fix for an issue where Cloud Firestore would send
undefined
for a document snapshot if the "clear site data" button was pressed in the web browser. This fix was introduced in v11.6.1 but inadvertently caused IndexedDB issues for some customers. See GitHub Issue #9165.Further improved performance of UTF-8 string ordering logic, which had degraded in v11.3.0, was reverted in v11.3.1, and was reintroduced with some improvements in v11.5.0.
Fixed a regression where the SDK did not re-connect to IndexedDb after a disconnect.
Version 11.10.0 - June 26, 2025
- Added React Native entry point.
AI Logic
- Added deprecation label to
totalBillableCharacters
.totalTokens
should be used instead.
Cloud Firestore
- Added support for Firestore result types to be serialized with
toJSON
and then deserialized withfromJSON
methods on the objects. - Added support to resume
onSnapshot
listeners in the CSR phase based on serializedDataSnapshot
s andQuerySnapshot
s built in the SSR phase. - Internal listener registration change for IndexedDB
versionchange
events.
Cloud Storage
- Fixed CORS error that occurred in Firebase Studio.
Version 11.9.1 - June 10, 2025
Authentication
- Fixed a Firebase Studio issue where Firebase Auth cookie refresh attempts issued in Firebase Studio resulted in CORS errors.
Cloud Storage
- Fixed a Firebase Studio issue that didn't properly populate cookies for Storage users.
Version 11.9.0 - June 5, 2025
AI Logic
- Added
title
,maximum
,minimum
,maxItems
,minItems
, andpropertyOrdering
toSchema
. - Added
HarmBlockThreshold.OFF
support.
Cloud Firestore
- Clean up leaked WebChannel instances when the Firestore instance is terminated.
Version 11.8.0 - May 20, 2025
- The
FirebaseApp
settingautomaticDataCollectionEnabled
now defaults totrue
. This setting was previously only used by App Check and won't change the default behavior in App Check.
Cloud Firestore
- Fixed a cache issue in Safari/WebKit that occurs when client-side indexing is used.
AI Logic
Initial release of the Firebase AI Logic SDK (
@firebase/ai
). This SDK replaces the previous Vertex AI in Firebase SDK (@firebase/vertexai
) to accommodate the evolving set of supported features and services. The new Firebase AI Logic SDK provides preview support for the Gemini Developer API, including its free tier offering. Using the Firebase AI Logic SDK with the Vertex AI Gemini API is still generally available (GA).To start using the new SDK, use the
getAI()
instance getter imported from’firebase/ai’
. See details in the migration guide.Added support for Gemini multimodal output.
Fixed an issue where
GenerationConfig
was not inherited fromChatSession
.
Version 11.7.1 - May 7, 2025
- Rolled back the change in 11.7.0 that set the value of
automaticDataCollectionEnabled
totrue
. Due to a backend setting not being ready yet, this will cause errors in Vertex AI in Firebase requests. This change will be restored when the backend is ready.
Version 11.7.0 - May 7, 2025
- The
FirebaseApp
settingautomaticDataCollectionEnabled
now defaults totrue
. This setting was previously only used by App Check and won't change the default behavior in App Check.
Version 11.6.1 - April 24, 2025
Authentication
- Fixed an issue where
ActionCodeURL
was not populatinglanguageCode
from the URL. Fixes GitHub Issue #8912.
Data Connect
- Resolved a 'cannot extend private constructor' build error that occurred when using the
DataConnectError
andDataConnectOperationError
types. See GitHub PR #8898.
Cloud Firestore
- Fixed the
null
value handling in!=
andnot-in
filters. See GitHub PR #8915. - Fixed 'window is not defined' error when calling
clearIndexedDbPersistence
from a service worker. Fixes GitHub Issue #6465. - Fixed an issue where Firestore would produce
undefined
for document snapshot data if using IndexedDB persistence and "clear site data" (or equivalent) was selected in the web browser. Fixes GitHub Issue #8953. - Added unique IDs and state information into fatal error messages instead of the generic "unexpected state" message.
Version 11.6.0 - March 31, 2025
Authentication
- Added
Persistence.COOKIE
, a new persistence method backed by cookies. ThebrowserCookiePersistence
implementation is designed to be used in conjunction with middleware that ensures both your front and backend authentication state remain synchronized.
Data Connect
- Exposed partial errors to the user.
Vertex AI in Firebase
The SDK now throws an error when initializing models if
appId
is not defined in the given Vertex AI in Firebase instance.Labeled
GroundingAttribution
as deprecated.
Version 11.5.0 - March 20, 2025
App Check
- The
getToken()
method now throwsinternalError
strings that were previously internally suppressed. Fixes GitHub issue #8822.
Cloud Firestore
- Implemented lazy UTF-8 encoded byte comparison for strings. Fixes GitHub issue #8774 and #8778.
Data Connect
- Updated requests to point to the
v1
backend endpoints instead ofv1beta
.
Performance Monitoring
- New retry logic prevents infinite retry attempts. Fixes GitHub issue #8813.
Realtime Database
- Added non-null parent properties to
ThenableReference
.
Vertex AI in Firebase
Added missing
BlockReason
andFinishReason
enum values.systemInstruction
,tools
, andgenerationConfig
have been added toCountTokensRequest
.
Version 11.4.0 - February 27, 2025
- Added support for the
FIREBASE_WEBAPP_CONFIG
environment variable at install time. This feature supports auto-initialization for SSR apps using Firebase App Hosting.
Authentication
- Invoking
connectAuthEmulator
multiple times with the same parameters will no longer cause an error. Fixes GitHub issue #6824.
App Check
- Fixed a bug that caused an error to be thrown when the debug exchange request failed.
Realtime Database
- Invoking
connectDatabaseEmulator
multiple times with the same parameters will no longer cause an error. Fixes GitHub issue #6824.
Vertex AI in Firebase
Public Preview: Added support for generating images using the Imagen 3 models.
Added support for modality-based token count.
The SDK now filters out empty text parts from streaming responses. Fixes GitHub issue #8714.
Created a separate entry point bundle for Node.js. This bundle can be automatically detected by any developer tooling configured to prefer Node.js fields in
package.json
, such asmain
orexports.node
.
Remote Config
- Added support for initial state hydration from SSR contexts.
Version 11.3.1 - February 11, 2025
Cloud Firestore
- Reverted a change to use UTF-8 encoding in string comparisons because it caused a performance issue. Fixes GitHub issue #8778.
Version 11.3.0 - February 6, 2025
- Added an
appCheckToken
parameter toFirebaseServerAppSettings
.FirebaseServerApp
will use the token when making service requests, unblocking the use of App Check enforced products in SSR environments.
Authentication
- Added
ActionCodeSettings.linkDomain
to customize the Firebase Hosting link domain that is used in mobile out-of-band email action flows. Also, deprecatedActionCodeSettings.dynamicLinkDomain
.
Performance Monitoring
- Collect web vital metrics (INP,CLS,LCP) as part of page load event.
Realtime Database
- Fixed a potential negative offset when calculating last reconnect times. This could cause lengthy reconnect delays in some scenarios. Fixes GitHub Issue #8718.
Cloud Firestore
- Fixed an issue where the SDK's string sorting differed from the server's (UTF-8 byte order) for document fields and map/document keys, resolving a mismatch caused by special characters.
Version 11.2.0 - January 16, 2025
Data Connect
- Usage of
PromiseLike
has been replaced withPromise
.
Remote Config
- Added support for custom signal targeting. Use the
setCustomSignals
API and to set custom signals that can be targeted using the new custom signal condition type in the Remote Config console.
Version 11.1.0 - December 12, 2024
Cloud Functions for Firebase Client SDK
- Added
.stream()
API for callable functions to consume stream responses.
Data Connect
- Fixed issue where multiple calls to
connectDataConnectEmulator
caused an exception.
Cloud Messaging
- Fixed an issue where
PushManager.subscribe()
is called too soon after registering the default service worker. Fixes GitHub Issue #7784.
Vertex AI in Firebase
- Clear
fetch
timeout
after request completion. Fixes an issue that caused Node.js scripts to hang on exit due to a pending timeout.
Version 11.0.2 - November 14, 2024
- Upgraded to TypeScript 5.5.4.
Cloud Firestore
- Prevent a possible condition of slow snapshots, caused by a rapid series of document update(s) followed by a delete. Fixes GitHub Issue #8474.
Vertex AI in Firebase
- Update to new base URL in documentation.
- Remove indentation in
API Not Enabled
error. - Send App Check dummy token in header if there is an App Check
getToken
error.
Version 11.0.1 - October 22, 2024
Realtime Database
- Bumped
@firebase/database-compat
by a major version to ensure downstream libraries likefirebase-admin
don't automatically pick up the Node.jsengines
update inpackage.json
.
Version 11.0.0 - October 21, 2024
Vertex AI in Firebase is now Generally Available (GA) and can be used in production apps.
Use the Vertex AI in Firebase SDK to call the Vertex AI Gemini API directly from your app. This client SDK is built specifically for use with Web apps, offering security options against unauthorized clients as well as integrations with other Firebase services.
- If you're new to this SDK, visit the getting started guide.
- If you used the preview version of the library, visit the migration guide to learn about some important updates.
The SDK no longer supports versions of Node.js below version 18.
engines
fields in allpackage.json
files have been updated to reflect this.Removed ES5 bundles. The minimum required ES version is now ES2017.
Removed usage of
undici
andnode-fetch
dependencies in our Node.js bundles, replacing them with the native Node.jsfetch
implementation.
Authentication
- Added ReCAPTCHA Enterprise support for app verification during phone authentication.
Cloud Functions for Firebase Client SDK
- The
FunctionsError
class is now publicly exported.
Cloud Firestore
- Memory LRU GC is now enabled by default.
Version 10.14.1 - October 10, 2024
Cloud Messaging
- Fixed a logging issue where Web Push data was missing in BigQuery logs.
Version 10.14.0 - September 30, 2024
Data Connect
Added the Data Connect package to the SDK.
Added App Check support.
Cloud Firestore
Re-enabled
useFetchStreams
with the latest WebChannel implementation. This reduces the memory usage of WebChannel.Refactored Cloud Firestore client instantiation. This prepares for future releases that require the client to restart.
Version 10.13.2 - September 18, 2024
Authentication
- Suppress the use of the parameter
referrerPolicy
withinfetch
requests originating from Cloudflare Workers. Cloudflare Worker environments do not support this parameter and all Auth operations would silently fail. Fixes GitHub Issue #8355.
Cloud Firestore
- Fix an issue with metadata
fromCache
defaulting totrue
when listening to cache in multiple browser tabs. See GitHub PR #8343.
Version 10.13.1 - August 29, 2024
- Removed an unnecessary
console.log
statement. See GitHub Issue #8436. - Updated
undici
dependency to 6.19.7 due to a memory leak in older versions. See GitHub Issue #8431
Cloud Functions for Firebase Client SDK
- Allow a custom path in Firebase Functions custom domain. See GitHub Issue #8440
Version 10.13 - August 15, 2024
- The compat package now checks whether firebase is defined in the
global
scope. Fixes GitHub Issue #8409. - Prevent heartbeats from throwing errors. Fixes GitHub Issue #8407.
Cloud Firestore
- Add support for reading and writing Firestore vectors. See GitHub PR #8215.
Authentication
- Remove
localStorage
synchronization on storage events in Safari iframes. See GitHub PR #8408.
Cloud Storage
- Migrate from the Node to the Web ReadableStream. See GitHub PR #8410.
Version 10.12.5 - August 1, 2024
Reverted the change that added the safevalues library, as it is not compatible with ES5 bundles. We will return to using
safevalues
when we migrate all our builds away from ES5.Properly handle the case in
app-compat
checks wherewindow
exists butself
does not. (This occurs in Ionic Stencil's Jest preset, for example.)Fixed typos in documentation and some internal variables and parameters.
Version 10.12.4 - July 18, 2024
- The SDK now uses the safevalues library to sanitize HTML vulnerable to XSS.
Version 10.12.3 - July 3, 2024
- Updated browser environment detection logic in
firebase/util
to allow for the experimental use ofFirebaseServerApp
instances in edge runtimes. See GitHub Issue #8299. - Guard the use of
FinalizationRegistry
inFirebaseServerApp
initialization based on the availability ofFinalizationRegistry
in the JavaScript runtime. See GitHub Issue #8299. - The
FirebaseServerAppSettings.name
field inherited fromFirebaseAppSettings
is now omitted instead of overloading the value asundefined
. This fixes a TypeScript compilation error. For more information, see GitHub Issue #8336.
Cloud Firestore
- Fixed a metadata sync issue with multi-tab persistence and snapshot listeners. See GitHub Issue #8314.
- Fixed a typo in the
package.json
ofwebchannel-wrapper
that causedbloom-blob
to be missing theesm5
specifier. See GitHub Issue #8319.
Firebase AI Logic
- Added a new publicly exported
VertexAIError
class. See GitHub PR #8240.
Version 10.12.2 - May 27, 2024
Authentication
- Changed
types
paths to point to rolled-up publicd.ts
files. This fixes TypeScript compilation errors in the web extension and cordova bundles. See GitHub Issue #8222.
Firebase AI Logic
- Changed
types
paths to point to point to rolled-up publicd.ts
files. This fixes some TypeScript compiler errors. See GitHub PR #8256
Version 10.12.1 - May 20, 2024
Analytics
- Fixed a bug where
setConsent
was incorrectly passing consent parameters togtag()
. See GitHub Issue #8210.
Cloud Firestore
- Fixed a multi-tab persistence issue that caused empty snapshots.
Version 10.12.0 - May 13, 2024
Firebase AI Logic
- Initial release of the Vertex AI for Firebase SDK (public preview). Learn how to get started with the SDK in your app.
Cloud Firestore
Updated
@firebase/webchannel-wrapper
to consume Closure dependencies from theclosure-net
GitHub repo.Fixed multi-byte character decoding bug by updating
webchannel-wrapper
dependency.
Version 10.11.1 - April 25, 2024
Authentication
- The SDK now emits a module package file with
esm2017
browser extension builds. See GitHub Issue #8115. - Update
jszip
transient dependency from3.7.1
to3.10.1
.
Cloud Firestore
- Prevent spurious "Backend didn't respond within 10 seconds" errors when network is in fact responding, but slowly. See GitHub PR #8145.
- Update
protobufjs
transitive dependency from6.11.3
to7.2.6
. - Return to using
xmlhttprequest
for bidi-streams, asfetch
streams seem to be having connection issues. - Reduce code bundle size by 6.5 kB in applications that only use
memory persistence (the default persistence mode). This bundle size regression
was accidentally introduced in version
10.7.2
.
Version 10.11.0 - April 11, 2024
-
FirebaseServerApp
is no longer JSON serializable. - Upgraded
undici
version to5.28.4
due to the low severity security issue CVE-2024-30260. - Updated dependencies in Auth, Firestore, Storage and App. See GitHub PR #8098.
Cloud Firestore
- Fixed an issue where client side indexing on timestamp fields leads to incorrect query results. See GitHub issue #8031.
Cloud Messaging
- Revised token update logic to prevent unnecessary token deletions during transient network issues. See GitHub PR #8141.
Version 10.10.0 - March 28, 2024
- Added the new
FirebaseServerApp
interface to bridge state data between client and server runtime environments. This interface extendsFirebaseApp
.
Authentication
- Updated transitive dependencies based on generated dependabot security reports. See GitHub PR #8088.
- Additional protection against misuse of the
authTokenSyncURL
experiment. See GitHub PR #8076.
Version 10.9.0 - March 14, 2024
Authentication
- Fixed a potential XSS vulnerability through
FIREBASE_DEFAULTS
settings. See PR #8056 for more information.
Cloud Firestore
- Added the
ListenSource
enum toSnapshotListenOptions
to provide an option to retrieve data from local cache only.
Version 10.8.1 - February 28, 2024
- Upgrade
undici
version to5.28.3
due to the low severity security issue CVE-2024-24758.
Version 10.8.0 - February 1, 2024
- Fixed to catch
transaction.done
errors inreadHeartbeatsFromIndexedDB
and log them as a warning, because platform logging errors should never block user app functionality.
Authentication
- Added a
firebase/auth/web-extension
entry point for web extension developers. This entry point does not include any code that loads remote scripts, which are disallowed under Manifest V3. In extensions, this entry point should replacefirebase/auth
completely, and developers should not try to use both in the same app. See GitHub issue #7617.
Analytics
- Added two new consent options to the
ConsentSettings
interface:ad_personalization
andad_user_data
.
Realtime Database
- Fixed issue where
queryConstraint.type
was undefined.
Cloud Firestore
- Fixed
isSafari()
throwing in React Native. See GitHub issue #7962.
Version 10.7.2 - January 18, 2024
- Catch and warn IndexedDB
createObjectStore
errors in Safari-based browsers. See GitHub issue #7829.
Cloud Firestore
- Update the
isEqual
function forarrayUnion
,arrayRemove
andincrement
. See GitHub issue #7706. - Fixed leak of grpc-js resources on terminate. See GitHub issue #7747.
- Adjusted the automatic index creation parameters to use more optimal values for the platform/browser detected at runtime.
- Support special characters in query paths sent to
getCountFromServer(...)
,getCount(...)
(lite API), andgetDocs(...)
(lite API).
Version 10.7.1 - December 5, 2023
App Check
- Prevent App Check from logging "uncaught" cancelled promises. The cancelled promises are part of App Check's expected behavior, and their cancellation wasn't intended to produce errors or warnings. See GitHub issue #7805.
Authentication
- Added protections when enumerating an empty list in Auth's reading of IndexedDB results, as this causes errors in some macOS and iOS browser runtimes. See GitHub issue #7825.
Version 10.7.0 - November 27, 2023
- Replaced
node-fetch
dependency with the latest version ofundici
in Node.js SDK builds for Auth, Firestore, Cloud Functions, and Storage. See GitHub issue #7280. - Introduced more safeguards to ensure that heartbeat objects queried from IndexedDB include a heartbeats field.
Authentication
- Exposed
INVALID_LOGIN_CREDENTIALS
asauth/invalid-credential
error and updated docs for various Auth SDK methods.
Cloud Firestore
- Introduced fixes for high memory usage of Firestore in browsers. See GitHub issue #6118.
Version 10.6.0 - November 9, 2023
- Provide a more robust check to cover more cases of empty heartbeat data.
Authentication
- Add Sign in with Apple token revocation support.
Cloud Firestore
- Allow converter return value of undefined. See GitHub issue #7719.
Version 10.5.2 - October 26, 2023
Authentication
- Added the
TotpMultiFactorGenerator
andTotpSecret
exports that were missing from the React Native entry point.
Cloud Firestore
- Rolled back the use of
useFetchStreams
, which had led to hanging queries. This bug was introduced in 10.4.0.
Version 10.5.1 - October 26, 2023
Authentication
- Fixed issues with
FetchProvider
in non-browser environments. See Github issue #7633.
Cloud Firestore
- Clarified API documentation around
getFirestore()
andinitializeFirestore()
functions.
Version 10.5.0 - October 12, 2023
Cloud Firestore
Added support for
sum
andaverage
aggregations.Added a default template type parameter to
withConverter()
methods to allow backward compatibility with version 9 of the SDK.
Version 10.4.0 - September 14, 2023
Cloud Firestore
Added
enablePersistentCacheIndexAutoCreation()
function to enable automatic creation of local cache query indexes, which can improve performance of local query execution.Fixed an issue where Cloud Firestore was incorrectly using XHR instead of
fetch
for streaming response.Updated dependency
grpc-js
from version~1.8.17
to~1.9.0
.
Version 10.3.1 - August 31, 2023
Cloud Firestore
- An internal refactor related to client-side index creation.
Version 10.3.0 - August 22, 2023
Authentication
Fixed a regression in version 10.0.0 caused by adding a hard dependency on
@react-native-async-storage/async-storage
as a convenience for React Native developers. This caused unnecessary warnings during npm or Yarn install for non-React Native users, and in some cases, React version conflicts.10.3.0 will break React Native users who have converted to using
getAuth()
to initialize Authentication. React Native users who want persistent auth state must now explicitly import@react-native-async-storage/async-storage
and provide it toinitializeAuth()
as an option like so:import { initializeAuth, getReactNativePersistence } from 'firebase/auth'; import ReactNativeAsyncStorage from '@react-native-async-storage/async-storage'; const auth = initializeAuth(app, { persistence: getReactNativePersistence(ReactNativeAsyncStorage) }); // getAuth() can be used any time after initialization
See Github issue #7522.
Cloud Firestore
- Fixed a bug that caused high memory usage in Safari. See Github issue #6118.
Version 10.2.0 - August 17, 2023
Authentication
Added a
validatePassword
method for validating passwords against the password policy configured for the project or a tenant. This method returns a status object that can be used to display the requirements of the password policy and whether each one was met.Fixed a bug in the
onAuthStateChanged
canceller. See Github issue #7383.The SDK now raises an error if
initializeRecaptchaConfig
is called in a Node.js environment.
Cloud Firestore
- Updated
@grpc/proto-loader
from v0.6.13 to v0.7.8. This addresses a vulnerability in an older version of the transitive dependencyprotobufjs
.
Version 10.1.0 - July 20, 2023
Authentication
Implemented
authStateReady()
, which returns a promise that resolves immediately when the initial auth state is settled andcurrentUser
is available. When the promise is resolved,currentUser
might be a valid user ornull
if there is no user signed in currently.Unpinned the version of the dependency
@react-native-async-storage/async-storage
so that React Native users have more control over which version of it they use. See Github issue #7448.
Cloud Firestore
Updated the
grpc
dependency to the latest version. See Github PR #7452.Fixed issue where
count
andfirestore-lite
API queries did not work with named databases. See Github PR #7440.
Version 10.0.0 - July 6, 2023
The Firebase JavaScript SDK v10.0.0 has a number of breaking changes related to the React Native bundle for Authentication, as well as typings changes across several products.
Authentication
Removed explicit
firebase/auth/react-native
entry point. The React Native bundle should be automatically picked up by React Native build tools which recognize thereact-native
fields inpackage.json
(at the top level and inexports
). See Github PR #7138.Changed
getAuth()
in the React Native bundle to default to importingAsyncStorage
from@react-native-async-storage/async-storage
instead of from thereact-native
core package (which has recently removed it). See Github PR #7128.Changed the type of
ParsedToken
values fromany
tounknown
.Reordered
RecaptchaVerifier
parameters soauth
is the first parameter.
Realtime Database
- Updated type of action parameter for
DataSnapshot#forEach
.
Cloud Firestore
Fixed
updateDoc()
typing issue by adding a second type parameter toFirestoreDataConverter
. See Github PR #7310.Changed
UpdateData
to expand support for types with index signatures. See Github PR #7318.Fixed an issue where
localCache
was not copied as part ofSettings
.Fixed some incorrectly generated source maps for the following bundles:
index.esm2017.js
,index.cjs.js
,index.node.mjs
, andindex.browser.esm2017.js
(lite SDK only).
Version 9.23.0 - June 21, 2023
Cloud Firestore
- Exposed the MultiDB API for public preview. See Github PR #7356.
Version 9.22.2 - June 8, 2023
- Fixed the types path for
compat/app
to deliver the proper typings to the compat packages. See Github issue #7279.
Cloud Firestore
- Fix potentially false warning message when configuring host in both
settings()
andconnectFirestoreEmulator()
. See Github issue #7331.
Version 9.22.1 - May 25, 2023
App Check
- Added support for App Check replay protection in callable functions. See Github PR #7296.
Cloud Firestore
- Updated dependencies to enable setting
experimentalLongPollingOptions.timeoutSeconds
. See Github PR #7311.
Version 9.22.0 - May 12, 2023
Made the error more helpful when
getApp()
is called beforeinitializeApp()
. See Github PR #7263.Improved error handling for heartbeat read/write errors. See Github issue #6871.
Authentication
- The SDK now allows port numbers in
authDomain
. See Github issue #7233.
Cloud Firestore
Enabled long-polling networking mode auto detection by default. It can be explicitly disabled by setting
FirestoreSettings.experimentalForceLongPolling
tofalse
. See Github PR #7236.Added the ability to configure the long-polling
GET
request timeout using the newexperimentalLongPollingOptions.timeoutSeconds
setting. See Github PR #7176.
Version 9.21.0 - April 27, 2023
Analytics
- Added method
getGoogleAnalyticsClientId()
to retrieve an unique identifier for a web client. This allows users to log purchase and other events from their backends using Google Analytics 4 Measurement Protocol and to connect them to actions taken on the client within their Firebase web app.getGoogleAnalyticsClientId()
simplifies this event recording process. See Github PR #7158.
App Check
- Added method
getLimitedUseToken()
which requests a Firebase App Check token. This method should be used to authorize requests to non-Firebase backends. See Github PR #7169.
Cloud Firestore
Created
MemoryLruGarbageCollector
a new LRU garbage document collector for memory cache. See Github PR #6943.Optimized the local cache synchronization logic to reduce the number of billed document reads when documents were deleted on the server while the client was not actively listening to the query (e.g. while the client was offline). See Github PR #7229.
Fixed stack overflow caused by deeply nested server timestamps. See Github PR #7139.
Simplified the internal handling of aggregation results. See Github PR #7170.
Updated exports of
webchannel-wrapper
(a Firestore dependency) to conform to Node ESM standards. See Github PR #7228.
Authentication
- Increased the popup poller timeout to 8s to support blocking functions for Firefox. See Github PR #7140.
Version 9.20.0 - April 18, 2023
App Check
- Fixed ReCAPTCHA error handling so that the SDK now catches all ReCAPTCHA errors and then prevents the SDK from making a request to the App Check exchange endpoint, which prevents unnecessary 403 errors and throttling. See Github PR #7203.
Authentication
Added App Check support in Authentication.
Added ReCAPTCHA Enterprise support.
Cloud Firestore
- Fixed a bug that sometimes prevented aggregations from being run when multi-tab persistence was enabled.
Version 9.19.1 - March 31, 2023
Authentication
- Fixed typings for
TotpMultiFactorGenerator
. This fixes a reversion in 9.19.0. See Github issue #7174.
Version 9.19.0 - March 30, 2023
Authentication
Support
TOTP
as a multi-factor option in Firebase Auth/GCIP. See Github PR #7146.Modify
_fail(...)
to useAuthErrorCode.NETWORK_REQUEST_FAILED
and accept an error message. See Github PR #7125.
Analytics
- Use the Trusted Types API when composing the gtag URL. See Github PR #7155.
Cloud Firestore
Introduced additional configurations for Firestore SDK Cache. See Github PR #7015.
Verify
DOMException
exists before referencing it. See Github PR #7130.
Version 9.18.0 - March 16, 2023
Authentication
- Fixed a bug where
updateCurrentUser
set user metadata toundefined
. See Github issue #7066.
Cloud Firestore
Added support for disjunctions in
OR
queries. See Github PR #7053.Improved debug logging of
GrpcConnection
andWebChannelConnection
. See Github PR #7076.Updated check for an IndexedDB bug in Safari to include
navigator.userAgent
when determining whether to trigger a workaround. This is helpful for Cordova apps that lackappVersion
in their webview but need to apply the workaround. See Github issue #6509.
Version 9.17.2 - March 2, 2023
Authentication
- Modified
_fail(...)
to useAuthErrorCode.INTERNAL_ERROR
and accept an error message. See Github PR #7038.
Realtime Database
- Fixed issue where Vite with Astro could not resolve the correct output bundle. See Github PR #7055.
Cloud Firestore
Relaxed query validation performed by the SDK. See Github PR #7024.
Refactored platform-specific logic to create
TextEncoder
andTextDecoder
objects. See Github PR #7018.Modified all base64 decoding functions to explicitly throw an error on invalid input, as some previous implementations silently accepted invalid input. See Github PR #7019.
Refactored the aggregation implementation to support future aggregate functions. See Github PR #6952.
Implemented
closed
property in the reader returned fromtoByteStreamReaderHelper
which previously only raised anunimplemented
error. See Github PR #7058.
Version 9.17.1 - February 3, 2023
- Moved
exports.default
fields to always be the last field. This fixes a bug introduced in 9.17.0 that prevented some bundlers and frameworks from building. For these build failures, the error text is: "Default condition should be last one".
Version 9.17.0 - February 2, 2023
- Added browser CJS entry points (expected by Jest when using JSDOM mode). See Github PR #6981.
Authentication
- Exposed
TOKEN_EXPIRED
error when multi-factor authentication (MFA) unenroll logs out the user. See Github PR #6973.
Realtime Database
- Fixed issue where hostname set by
connectDatabaseEmulator
was being overridden by longpolling response. See Github issue #4603.
Cloud Firestore
- Reduced memory usage by applying query check sooner in remote document cache. See Github PR #6989.
Cloud Storage
- Fixed issue where users were unable to check if an error was an instance of
StorageError
. See Github issue #6944.
Version 9.16.0 - January 19, 2023
Allow users to specify their environment as
node
orbrowser
to override Firebase's runtime environment detection and force the SDK to act as if it were in the respective environment.Example:
export __FIREBASE_DEFAULTS__='{"forceEnvironment":"browser"}'
Reformat a comment that causes compile errors in some build toolchains. See Github issue #6838.
Removed unused
peerDependencies
in@firebase/auth-interop-types
. This should remove installation warnings forfirebase-admin
users. See Github PR #6940.
Authentication
- Added a fix to minimize a potential race condition between
initialization of the Authentication SDK and
signInWithRedirect
. See Github issue #6827.
Realtime Database
- Fixed an issue where
connectDatabaseToEmulator
was sometimes called twice during a hot reload See Github issue #6853.
Cloud Firestore
Updated internal logic behind
AND
andOR
queries to ensure consistency with older implicitAND
queries. See Github PR #6896.Fixed an issue that stops some performance optimization being applied. See Github PR #6893.
Cloud Storage
- Fixed an issue where
pause
throws an error when a request is in flight. See Github issue #6935.
Version 9.15.0 - December 8, 2022
Upgraded TypeScript in each individual package to 4.7.4. The earlier update in version 9.13.0 upgraded TypeScript only in the root.
Fixed a bug that caused Firebase SDKs to throw an error in Firefox browsers when third-party cookies are blocked. See Github issue #6801.
Updated
firebase/[product]
entry point bundles to conform to Node.js ES module specifications.
Realtime Database
- Added support for
startAfter
andendBefore
query params to the REST API and wire protocol. This change does not affect the existing public API. See Github PR #6706.
Cloud Firestore
- Functions in the Firestore package that return
QueryConstraints
(for example:where(...)
,limit(...)
, andorderBy(...)
) now return a more specific type, which extendsQueryConstraint
. See Github PR #6694.
Version 9.14.0 - November 10, 2022
Cloud Messaging
- Exposed
icon
field for thenotification
payload. See Github PR #6728.
App Check
- Corrected the clearing of the App Check exchange promise after a request succeeds. See Github issue #6734.
Cloud Firestore
Updated "missing index" error message to include the link to create the composite index. See Github issue #6613.
Updated
transaction.set()
failure to now retry onalready-exists
error. See Github PR #6729.
Performance Monitoring
- Expanded check in
getServiceWorkerStatus
to account for anavigator
that has a key ofserviceWorker
with a falsy value. See Github PR #6723.
Version 9.13.0 - October 27, 2022
- Upgraded TypeScript to 4.7.4. See Github PR #6682.
Cloud Messaging
- Exposed
icon
field for thenotification
payload. See Github PR #6722.
Cloud Storage
- Fixed issue where clients using Node.js v18 would use the native
Blob
object, which is incompatible withnode-fetch
. See Github PR #6705.
Version 9.12.1 - October 12, 2022
- Added error catching for when the SDK checks
__FIREBASE_DEFAULTS__
in order to not block other app functionality on error. See Github issue #6677.
Analytics
- Corrected
id
type insetUserId
. See Github PR #6671.
Cloud Storage
- Cleared retry timeouts when uploads are paused/canceled. See Github PR #6667.
Version 9.12.0 - October 11, 2022
Removed
__FIREBASE_DEFAULTS_PATH__
option, as the current implementation caused Webpack warnings. Fixedprocess.env
check to be compatible with environments whereprocess
exists butprocess.env
does not. See Github issue #6660.Fixed IPv6 addresses in emulator autoinit for Cloud Firestore, Realtime Database, Cloud Functions for Firebase Client SDK, and Cloud Storage. See Github issue #6673.
Cloud Firestore
Set
withCredentials=true
when making requests via non-streaming RPCs, as is done for streaming RPCs. See Github PR #6643.Fixed Firestore failing to raise initial snapshot from empty local cache result. See Github issue #5873.
Analytics
- Updated Analytics to allow for multiple instances of
gtag
with different data layer names. See Github PR #6655.
Realtime Database
- Fixed
endBefore
andpush
documentation typos in Realtime Database documentation. See Github PR #6583.
Cloud Storage
- Fixed bug where upload status wasn't being checked after an upload failure. Implemented exponential backoff and max retry strategy. See Github PR #6653.
Version 9.11.0 - October 06, 2022
- Added functionality to auto-initialize project config and emulator settings from global defaults. This allows the SDK to work with the upcoming framework-aware Firebase tools (currently an experimental release).
App Check
- Fixed timer issues in the App Check SDK that caused the token to fail to refresh after it had expired, or had caused rapid repeated requests while attempting to do so. See Github issue #6373.
Cloud Firestore
Added
getCountFromServer()
(getCount()
in the Lite SDK), which fetches the number of documents in the result set without actually downloading the documents.Fixed a time travel issue across multiple tabs. See Github issue #6511.
Version 9.10.0 - September 15, 2022
Authentication
- Updated custom claim type of
ParsedToken
to beany
. This more accurately reflects that a JWT may contain any valid JSON object. See Github issue #6553.
Cloud Firestore
- Enabled
encodeInitMessageHeaders
to transition the Firestore client from encoding HTTP Headers via thehttpHeadersOverwriteParam
to the request'sPOST
payload. Note, this requires Cloud Firestore Emulator v1.14.4 or newer. See Github PR #6107.
Version 9.9.4 - September 1, 2022
Authentication
- Fixed proactive refresh logic in Authentication when Realtime Database, Cloud Firestore, or Cloud Storage are in use. See Github PR #6544.
Realtime Database
- Added experimental support for Deno. See Github PR #6560.
Cloud Firestore
- Fixed a bug that threw a
FAILED_PRECONDITION
error when writing to a deleted document in a transaction. See Github issue #6550.
Version 9.9.3 - August 18, 2022
- Removed all references to
@firebase/polyfill
. See Github issue #6503.
Realtime Database
Fixed issue where
get()
would return incorrect results when using a filteredget()
and anonValue()
event listener on the same path. See Github PR #6497.Fixed faulty transaction issue causing filtered index queries to override default queries. See Github PR #6508.
Reverted the type of
action
parameter forDataSnapshot.forEach()
. See Github issue #6368.
Version 9.9.2 - August 04, 2022
- Prevent the SDK from throwing errors if it is unable to log platform data due to an IndexedDB error. It will log a warning instead. See Github PR #6480.
Realtime Database
- Updated the type of the
action
parameter forDataSnapshot.forEach()
. See Github issue #6368.
Cloud Firestore
- Introduce client-side indexing with beta API
setIndexConfiguration()
. See Github PR #6496.
Version 9.9.1 - July 22, 2022
App Check
- Fixed throttling for App Check to prevent unnecessary requests to the backend. See Github issue #6373.
Cloud Firestore
- Updated
@grpc/proto-loader
dependency to addressprotobufjs
security issue. See Github issue #6438.
Testing SDK
- Updated
firebase-admin
andfirebase-functions
dependencies to addressprotobufjs
security issue.
Version 9.9.0 - July 07, 2022
- Added the missing CDN build and entry point for Firebase installations.
Analytics
Added function
setConsent()
to set the applicable end user "consent" state.Added function
setDefaultEventParameters()
to set data that is logged on every Analytics event.
Authentication
Fixed a bug that caused ReCAPTCHA conflicts between Authentication and App Check when using ReCAPTCHA Enterprise in App Check. See Github issue #6133.
Updated user agent detection to better detect iPad. This fixes a bug affecting some iPad devices running Cordova apps. See Github issue #6331.
Realtime Database
- Forced
get()
to wait to resolve until the SDK is connected to the Realtime Database backend. See Github issue #6036.
Cloud Firestore
- Fixed Node.js ESM
exports
paths forfirestore/lite
. See Github issue #6414.
Cloud Functions for Firebase Client SDK
- Updated
FunctionsErrorCode
type to include "functions/" prefix. See Github issue #6281.
Version 9.8.4 - June 23, 2022
Analytics
- Fixed typo in
GtagConfigParams
. See Github issue #6349.
Realtime Database
- Fixed issue where
get()
saved results incorrectly for non-default queries. See Github PR #6273.
Version 9.8.3 - June 09, 2022
Added
types
fields toexports
object inpackage.json
files for all published packages to make them compatible with TypeScript 4.7 support of Node.js ES modules. See Github issue #6300.Fixed some incorrect
package.json
paths to entry points in Authentication and Cloud Firestore.
Realtime Database
- Removed
@firebase/app-compat
as apeerDependency
of@firebase/database-compat
, which should not impact JS SDK users, but will preventfirebase-admin
users from seeing a warning during npm installation.
Cloud Messaging
- Fixed a bug where the
fcmOptions
field was missing fromonMessage()
andonBackgroundMessage()
payloads. See Github issue #6207.
Cloud Storage
- Fixed the Node.js ESM bundle to build from the Node.js entry point (it was incorrectly using the browser entry point). See Github issue #6343.
Version 9.8.2 - May 27, 2022
Authentication
Added missing
identities
field tofirebase
claim in the typings for the ID token result. See Github issue #6218.Updated the SDK to recognize Capacitor apps by detecting the
capacitor:
protocol. See Github issue #5020.Fixed a bug where
error.email
and other fields were not populated in the Google Sign-In error flow if the user had been disabled using the Firebase Console.
Version 9.8.1 - May 09, 2022
Authentication
- Fixed some typings issues that caused compile errors for TypeScript users. See Github issue #6246.
Version 9.8.0 - May 06, 2022
As of this version, Internet Explorer 11 is no longer officially supported by the Firebase JavaScript SDK.
Restored
idb
dependency and increased to the latest version, which supports ESM. This affects Analytics, App Check, Cloud Messaging, Performance Monitoring, and Remote Config. See Github issue #6154.
Authentication
- Added a
beforeAuthStateChanged()
middleware function which allows you to provide callbacks that are run before an auth state change sets a new user.
Realtime Database
- Added
forceWebSockets()
andforceLongPolling()
methods.
Cloud Firestore
- Added a
TransactionOptions
param to therunTransaction()
method.
Version 9.7.0 - April 28, 2022
App Check
- Updated App Check to use
v1
exchange endpoint instead ofv1beta
endpoint for both reCAPTCHA v3 and reCAPTCHA Enterprise.
Cloud Functions for Firebase Client SDK
- Added
httpsCallableFromURL()
, which calls a callable function using its URL.
Version 9.6.11 - April 14, 2022
- Set default IndexedDB transaction mode to
readonly
for IE11 compatibility.
Realtime Database
Fixes an issue where if a websocket protocol was used in the
databaseURL
, thewebSocketOnly
field was incorrectly set to undefined. (When usingwss
orws
protocols in thedatabaseURL
,webSocketOnly
is true and long polling is disabled). See Github PR #6126.Updated compat typings for
Reference
methods. See Github issue #6071.
Cloud Firestore
- Fixes an issue during multi-document lookup that resulted in the IndexedDB error "The parameter is less than or equal to this cursor's". See Github issue #6110.
Version 9.6.10 - March 24, 2022
- Removed unneeded typings from the internal package
@firebase/util
. These typings caused errors in some projects using both Node.js and TypeScript.
App Check
- Fixed a bug where
@firebase/app-check-types
was not included as a dependency of@firebase/app-check-compat
. This could potentially affect TypeScript compilation for users of theapp-check-compat
package.
Cloud Firestore
- Changed the format of some of the IndexedDB data stored by
the Cloud Firestore SDK. This increases the performance of document lookups
after an initial migration. If you do not want to migrate data, you can call
clearIndexedDbPersistence()
before invokingenableIndexedDbPersistence()
.
Version 9.6.9 - March 17, 2022
- Replaced
idb
dependency with in-house code to fix errors that occur when Node.js or SSR apps target ESM. This includes apps using Angular 13.1+. This fix affects Analytics, App Check, Cloud Messaging, Performance Monitoring, and Remote Config. See Github issue #6042.
Version 9.6.8 - March 4, 2022
Cloud Messaging
- Fixed a bug in
onBackgroundMessage()
that caused notifications to display twice. See Github issue #5516.
Version 9.6.7 - February 17, 2022
Cloud Firestore
Fixed a bug that caused Cloud Firestore streams to get restarted with the same App Check token.
On browsers that support IndexedDB v3, we now invoke
transaction.commit()
andIndexedDB.getAll()
to speed up data processing.Cloud Firestore queries are now sent to the backend before the SDK starts local processing, which reduces overall
Query
latency.
Version 9.6.6 - February 3, 2022
Authentication
- Fixed a bug where the
user.providerData
field was being improperly initialized. See firebaseui-web Github issue #917.
Cloud Firestore
- Added to the version 9 upgrade guide
important details about a potential breaking change in which the property
DocumentSnapshot.exists
has been changed from a property to a method. If your version 8-based app uses theexists
property, you must refactor your code as part of the upgrade to version 9.
Cloud Messaging
- Fixed an uncaught rejection in
isSupported()
when the environment does not support IndexedDB'sopen()
method. See Github issue #5868.
Version 8.10.1 - January 28, 2022
- Updated
node-fetch
dependency due to a security issue (CVE-2022-0235).
Version 9.6.5 - January 27, 2022
- Updated
node-fetch
dependency due to a security issue (CVE-2022-0235).
Authentication
Fixed errors in
auth-compat
when cookies are fully disabled in Chrome. See Github issue #5913.Added missing
PhoneMultiFactorInfo
public interface. See Github issue #5922.The SDK no longer causes React Native to log a warning about deprecation of
AsyncStorage
if the developer has provided the non-deprecated version. See Github issue #1847.
Cloud Firestore
- Fixed an App Check issue that caused Cloud Firestore listeners to stop working and receive a "Permission Denied" error. This issue only affected App Check developers that set their expiration time to under an hour. See Github issue #5842.
Version 9.6.4 - January 20, 2022
Authentication
Fixed the error code thrown when the network times out. See Github issue #5874.
Added
./cordova
and./react-native
paths to theexports
field inpackage.json
. See Github issue #5878.
Cloud Messaging
- Changed
exports
paths to always point to.cjs
bundles when in a Node.js context, since the Cloud Messaging SDK is currently unable to provide ESM bundles for Node.js. See Github issue #5839.
Version 9.6.3 - January 13, 2022
Cloud Firestore
- The Node.js SDK now bundles its internal
.proto
files into the code instead of reading them from the filesystem at runtime. This prevents errors likeno such file or directory
in certain types of deployments. See Github issue #5823.
Cloud Messaging
Fixed a bug where the
fcmMessageId
field in the message payload was incorrectly defined asfcm_message_id
.Add a CJS bundle for
messaging/sw
. This enables some SSR frameworks to run their Node.js pipelines without erroring. See Github issue #5854.
Version 9.6.2 - January 7, 2022
Authentication
- Fix persistence selection in compatibility layer in worker scripts. See Github issue #5791.
Cloud Firestore
FirestoreError
now extendsFirebaseError
. See Github issue #5754.Fixed an issue that caused incomplete
Query
snapshots when the SDK is backgrounded during query execution.
Cloud Storage
-
StorageError
now extendsFirebaseError
. See Github issue #5754.
Version 9.6.1 - December 9, 2021
Authentication
- Fixed errors that occurred during initialization of the Authentication SDK when the network is unavailable. See Github issue #5720.
Cloud Firestore
- Hardcoded the version of grpc-js sent to logs as a temporary fix
for
createRequire
issues in the Node.js CJS bundle.
Version 9.6.0 - December 2, 2021
Cloud Firestore
- Added support for App Check.
Version 9.5.0 - November 18, 2021
Cloud Storage
- Added
getBytes()
,getStream()
andgetBlob()
, which allow direct file downloads from the SDK.getStream()
is only available for Node.js andgetBlob()
is only available for browser-like environments.
App Check
Reduced the latency of the first
getToken()
call by proactively retrieving a token when App Check is initialized.App Check now throttles requests after some error codes to prevent overwhelming the endpoint.
Cloud Firestore
The SDK no longer accesses
IndexedDB
during a page unload event on Safari 15. This aims to reduce the occurrence of anIndexedDB
bug in Safari (https://bugs.webkit.org/show_bug.cgi?id=226547). See Github issue #5716.Updated the Node.js build to work better with Jest. See Github issue #5687.
Version 9.4.1 - November 11, 2021
Authentication
- Added
getReactNativePersistence()
as an export from the React Native bundle. See Github issue #1847.
Cloud Functions for Firebase Client SDK
- Clear pending timeout after
Promise.race()
. It allows the process to exit immediately in case the SDK is used in Node.js. Otherwise the process waits for the timeout to finish before exiting. See Github issue #5692.
Cloud Storage
- Clear the global timeout once an operation is done in the Cloud Storage SDK. Otherwise the pending timeout may prevent Node.js from exiting. See Github issue #5628.
Version 9.4.0 - November 08, 2021
Realtime Database
- Fixed a packaging issue that broke the Firebase Admin Node.js SDK. see Github issue #1487.
Cloud Firestore
- Expanded
Firestore.WithFieldValue<T>
to includeT
. This allows developers to delegateWithFieldValue<T>
inside wrappers of typeT
to avoid exposing Firebase types beyond Firebase-specific logic. see Github issue #5661.
Version 9.3.0 - November 04, 2021
- Added ESM entry point for Node.js and added
exports
field support to all packages.
App Check
- Added ReCAPTCHA Enterprise as an attestation option.
Authentication
Added the missing
SAMLAuthProvider
to the compatibility layer.Fixed bug that caused
onAuthStateChanged
to be fired twice. See Github issue #5685.
Version 9.2.0 - October 28, 2021
- Added an empty typings file to the
firebase
package to fix autocomplete problems in some IDEs. See Github issue #5649.
Authentication
Fixed behavior on subsequent calls to
getRedirectResult()
. See Github issue #5610.Fixed the public
AuthError
typing and update theMultiFactorError
implementation to follow the new standard (where all fields are listed undercustomData
).Fixed an error raised in Lighthouse reports by adding the attribute
aria-hidden="true"
to the embedded iframe. See Github issue #5631.The SDK now exports phone sign-in functionality in the React Native entry point (except for
RecaptchaVerifier
).Made the SDK resilient against
localStorage
andsessionStorage
permissions errors. See Github issue #5618.Fixed compatibility layer (
auth-compat
) errors that were being thrown in Safari. See Github issue #5644.
Cloud Firestore
Fixed
exports
fields to also point to ESM builds for Node.js. This change requires Node.js version 10+. See Github issue #5499.Added missing compat conversion for
runTransaction
. See Github issue #5627.Changed the networking API to use XHR instead of
fetch()
for React Native. See Github issue #1674.
Version 9.1.3 - October 14, 2021
Cloud Storage
- Fixed a bug causing an unhandled promise rejection in Node.js when the Cloud Storage client encounters a network error. See Github issue #5372.
Version 9.1.2 - October 07, 2021
App Check
Fixed incorrect typings. See GitHub issue #5569.
Updated
@firebase/app-check-compat
to correctly export and handleReCaptchaV3Provider
andCustomProvider
classes.
Authentication
Calls to
connectAuthEmulator
with thedisableWarnings
flag set to true will no longer cause aconsole.info
warning to be printed.Fixed a bug in the
OAuthProvider.prototype.credential
method that was preventing therawNonce
field from being populated in the returnedOAuthCredential
. See GitHub issue #5553.Fixed a bug where
user.tenantId
wasn't being carried over in theupdateCurrentUser
function.Fixed an issue in
@firebase/auth-compat
where the SDK tried to access fields from aundefined
variable.
Version 9.1.1 - September 30, 2021
Authentication
- Fixed a bug on iOS causing incorrectly formatted links to be sent in emails. See GitHub issue #5541.
Version 9.1.0 - September 24, 2021
Authentication
All browser persistence implementations such as
indexedDBLocalPersistence
are mapped toinMemoryPersistence
in Node.js to allow isomorphic code that works well with use cases like server-side rendering.emailVerified
field is now set in theUser
correctly. See GitHub issue #5430.Added missing phone
FACTOR_ID
static property to thePhoneMultiFactorGenerator
class. See GitHub issue #5480.Fixed wrongly-typed
tenantId
fields in requests to some endpoints.
Cloud Firestore
- Fixed a bug where
UpdateData
did not recognize union types or optional, dot-separated string fields.
Remote Config
- Added an
isSupported()
function. You can use this function to check if the current environment supports Remote Config, and only initialize Remote Config in supported environments.
Analytics
- Fixed an issue where
isSupported()
throws unexpected errors in certain environments.
App Check
Initialization no longer throws runtime errors in Node.js.
Debug mode check is delayed till
initializeAppCheck()
is called.
Cloud Messaging
- Fixed an issue where
isSupported()
throws unexpected errors in certain environments.
Performance Monitoring
- Fixed an issue where
isSupported()
throws unexpected errors in certain environments.
Testing SDK
Fixed typing issues where
Database
/Firestore
/Storage
compat instances returned byRulesTestContext
are not compatible with v9 modular APIs.Set
RTDB
namespace to be same asprojectId
by default instead of${projectId}-default-rtdb
. This fixes rules not being applied and other issues related to namespace mismatch.
Version 9.0.2 - September 9, 2021
Authentication
Fixed a bug where custom errors from blocking functions were being dropped. See GitHub issue #5386.
Removed
const enum
s from the public typings file.
Cloud Firestore
Improved the error handling when the SDK encounters a failure opening IndexedDB in a Firefox private browsing session. See GitHub issue #5377.
Fixed a deadlock during asynchronous initialization of both Cloud Firestore and Authentication. See GitHub issue #5402.
Fixed the behavior of
collection()
when passed multiple path segment strings. See GitHub issue #5431.Added a temporary workaround for a bug causing
initializeFirestore()
to throw errors when used in certain build pipelines, such as the default production build for Create React App. See GitHub issue #5384.
Cloud Functions for Firebase Client SDK
- The SDK now omits sending an App Check token header to the Cloud Functions endpoint if there is no valid App Check token to send.
Cloud Storage
- Fixed a bug that incorrectly threw an error when using
refFromUrl()
withconnectStorageEmulator()
. See Github issue #3715 in firebase-tools.
Version 9.0.1 - August 30, 2021
Fixed
.cjs
builds that caused errors in Node.js use cases, such as using SSR in AngularFire. See GitHub PR #5400.Fixed a typing issue in
@firebase/app-compat
. See GitHub issue #5382.Fixed incorrect import of
node-fetch
polyfill that caused uncaught exceptions when using Cloud Storage and thefirestore/lite
package from Cloud Firestore.
Authentication
- Fixed a typing issue caused by a missing constructor for
OAuthProvider
.
Cloud Firestore
Added export fields to make
firestore/lite
available in Node.js. See GitHub PR #5400.Fixed incorrect import of
node-fetch
polyfill that caused uncaught exceptions when usingfirestore/lite
.
Version 9.0.0 - August 25, 2021
- This release introduces the new modular API, which enables tree-shaking, bundle size reduction, and other benefits. See SDK versions 8 and 9 for more details. Users of version 8 will need to update their code in order for it to still work with version 9.0.0 and higher. We have provided a compat package to make this migration easier. See the upgrade guide for instructions for upgrading from version 8 or the setup guide for instructions for getting started from scratch with version 9+.
Cloud Messaging
- FCM now provides delivery data export to BigQuery as an Alpha feature. See Enable message delivery data export.
Cloud Firestore
- This release introduces Firestore Lite, a lightweight, standalone REST-only Firestore SDK that supports single document fetches, query execution, and document updates, at a fraction of the regular Web SDK size. See Cloud Firestore Lite Web SDK.
Version 8.10.0 - August 19, 2021
- Added or updated the
mockUserToken
option provided to theuseEmulator()
functions in Realtime Database, Cloud Firestore, and Cloud Storage. The details for each product are below.
Realtime Database
- Allow
useEmulator()
to also accept a string for itsmockUserToken
option.
Cloud Firestore
- Allow
useEmulator()
to also accept a string for itsmockUserToken
option.
Cloud Storage
Add an options object containing
mockUserToken
as a param foruseEmulator()
.Changed
ref()
so it does not throw if given a path string that contains..
.
Cloud Messaging
- Exposed the
messageId
property onMessagePayload
.
Testing SDK
- Fixed JWT encoding bug that broke interoperability with the Cloud Storage emulator.
Version 8.9.1 - August 10, 2021
App Check
- Fixed typings on params passed to
activate()
.
Version 8.9.0 - August 5, 2021
Analytics
- Fixed formatting of documentation comments and updated some event typings to correctly match Google Analytics 4 specs.
App Check
- Add
RecaptchaV3Provider
andCustomProvider
classes that can be supplied as params tofirebase.appCheck().activate()
.
Cloud Storage
- Added a browser CJS build as
./dist/index.browser.cjs.js
. This change was primarily to prevent breaking the Emulator UI.
Version 8.8.1 - July 29, 2021
- Added a missing dependency in the
@firebase/app-types
package.
Version 8.8.0 - July 22, 2021
Analytics
- Added
firebase_screen
andfirebase_screen_class
tologEvent()
overload forscreen_view
events. These fields are required to logscreen_view
events correctly to Analytics.
Realtime Database
- Fixed sending of Authentication tokens in Node.js. This bug affected Admin SDK users who have App Check enforced.
Cloud Firestore
The SDK no longer accesses IndexedDB during a page unload event on Safari 14. This aims to reduce the occurrence of an IndexedDB bug in Safari (https://bugs.webkit.org/show_bug.cgi?id=226547). See GitHub issue #4076.
Fixed an issue that prevented
Date
objects from being used viaupdate()
when connected to the Cloud Firestore emulator.
Cloud Storage
- Added Node.js support to Cloud Storage for Firebase. This release
changes the
main
field inpackage.json
to point to a Node-specific build. If you are building a bundle for browser usage, make sure that your bundler uses thebrowser
field (this is usually the default).
Version 8.7.1 - July 8, 2021
Realtime Database
- In Node.js, always send Authentication and App Check tokens when they are available.
Version 8.7.0 - July 1, 2021
App Check
Added a
getToken()
method that returns an App Check token asynchronously.Added an
onTokenChanged()
method that adds listeners to App Check token changes.Fixed an error causing
HTTP status 429
errors in debug mode. See GitHub issue #5052.
Authentication
- Fixed an issue where Cloud Firestore didn't detect Authentication, which led to permission denied errors. See GitHub issue #4932.
Version 8.6.8 - June 17, 2021
Authentication
- Fixed a bug where
linkWithPopup
,linkWithRedirect
,reauthenticateWithPopup
, andreauthenticateWithRedirect
weren't correctly picking up the emulator configuration. See GitHub issue #4879.
Cloud Firestore
- Fixed a bug that caused
Uncaught TypeError: e.auth.addAuthTokenListener is not a function
. See GitHub issue #5018.
Version 8.6.7 - June 10, 2021
Cloud Firestore
- Fixed a regression that prevented Cloud Firestore from detecting the Authentication service during initialization, which prevented some writes from being sent.
Version 8.6.5 - June 4, 2021
- Fixed an error where
firebase.SDK_VERSION
did not always contain the correct version number.
Cloud Firestore
- Fixed an issue where
FetchXmlHttpFactory
was not available.
Version 8.6.4 - June 3, 2021
Cloud Functions for Firebase Client SDK
- JavaScript
Date
objects are now serialized to an ISO string instead of an empty object.
Version 8.6.3 - May 27, 2021
Realtime Database
- Fixed an
"index not defined"
error that sometimes occurred during aget()
call on anorderByChild
query.
Cloud Firestore
- Added a warning message when
settings()
is used to override the original value ofhost
without also setting{merge: true}
.
Version 8.6.2 - May 20, 2021
Cloud Firestore
- Use
pagehide
event for page termination by default, instead ofunload
. See docs onpagehide
vsunload
.
Cloud Functions for Firebase Client SDK
- Fixed a bug in
httpsCallable()
when it is used in the same project as Cloud Messaging. See GitHub issue #4909.
Testing SDK
- Prevent
useEmulators()
from erroring when only thestorage
field is populated in the options parameter.
Version 8.6.1 - May 12, 2021
- Fixed a bug that caused crashes in Cloud Storage, Cloud Functions for Firebase Client SDK,
and Realtime Database when using the all-in-one
firebase
import, as inimport firebase from 'firebase'
.
Realtime Database
- Fixed an issue that could cause
once()
to fire more than once if the value was modified inside its callback.
Version 8.6.0 - May 11, 2021
App Check
- Published the App Check package.
Realtime Database
- Fixed typings for
useEmulator
.
Testing SDK
- Added support for Cloud Storage emulator.
Version 8.5.0 - May 5, 2021
Realtime Database
-
useEmulator
now accepts an optionalmockUserToken
.
Cloud Firestore
-
useEmulator
now accepts an optionalmockUserToken
.
Version 8.4.3 - April 29, 2021
Realtime Database
Fixed an issue that prevented the SDK from firing cancel events for Firebase Security Rules violations. See GitHub issue #4818.
Fixes a regression introduced in version 8.4.1 that broke
useEmulator()
. See GitHub issue #4811.
Version 8.4.2 - April 23, 2021
- Fixed outdated
peerDependencies
.
Cloud Firestore
Fixed an issue where errors from
grpc
are thrown directly to user code. Now they are wrapped inFirestoreError
.Fixed an issue where an empty
X-Firebase-GMPID
header is sent in the request whenappId
is not available. See