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 GitHub issue #4795.
Cloud Storage
- Fixed the infinite recursion caused by the
FirebaseStorageError
message getter.
Version 8.4.1 - April 13, 2021
Realtime Database
- Fixed a build issue that caused SDK breakage.
Version 8.4.0 - April 12, 2021
Cloud Storage
- Added a
storage().useEmulator()
method to enable emulator mode for storage. This allows you to set a storage emulator host and port.
Cloud Firestore
- Fixed a bug where decimal inputs to
Timestamp.fromMillis()
were calculated incorrectly due to floating point precision loss.
Version 8.3.3 - April 08, 2021
- This update only includes internal refactoring.
Version 8.3.2 - March 31, 2021
- This update includes internal refactoring.
Version 8.3.1 - March 18, 2021
- Fixed a bug caused by an outdated version of the
tslib
dependency. See GitHub issue #4633.
Version 8.3.0 - March 10, 2021
Cloud Firestore
- Added support to remove the
FirestoreDataConverter
on aFirestore
reference by callingwithConverter(null)
Version 8.2.10 - March 4, 2021
Analytics
- Fixed typings for
analytics().logEvent()
so that theeventParams
argument is correctly typed as optional.
Version 8.2.9 - February 19, 2021
- API update for an internal package. There is no change in the public API.
Version 8.2.8 - February 18, 2021
Analytics
- Fixed a behavior causing
gtag.js
to be downloaded twice on Firebase Analytics initialization. See GitHub issue #2628.
Version 8.2.7 - February 11, 2021
Realtime Database
Fixed an issue with
Query.get()
whereQuery
filters were not applied to data in some cases.Added the missing type definitions for
startAfter()
andendBefore()
.
Cloud Firestore
Fixed a bug where local cache inconsistencies were unnecessarily being resolved.
Fixed the path to the react native memory-only build.
Version 8.2.6 - February 04, 2021
Authentication
- Fixed a bug where UTF-8 encoded strings were not decoded in
getIdTokenResult
. See GitHub issue #4174.
Realtime Database
- Fixed an issue with
startAfter
/endBefore
when used inorderByKey
queries.
Cloud Firestore
- Correctly handle
ignoreUndefinedProperties
inset({ merge: true })
. Previously this would behave as if the undefined value wereFieldValue.delete()
, which wasn't intended.
Version 8.2.5 - January 28, 2021
Realtime Database
- When issued for queries that are being listened to,
get()
calls no longer send backend requests.
Cloud Firestore
- Classes like
DocumentReference
andQuery
can now be serialized to JSON. See GitHub issue #4258.
Version 8.2.4 - January 21, 2021
Realtime Database
- Added
startAfter
andendBefore
filters for paginating Realtime Database queries.
Authentication
- Added the
useEmulator()
function andemulatorConfig
to thefirebase
package externs.
Cloud Firestore
- Fixed an error that caused
FirestoreDataConverter.fromFirestore()
to be called with an incorrectQueryDocumentSnapshot
object. See GitHub issue #4278
Version 8.2.3 - January 14, 2021
Realtime Database
- Fixed an issue that caused
refFromUrl()
to reject production database URLs whenuseEmulator()
was used.
Version 8.2.2 - January 7, 2021
Realtime Database
- Fixed an issue with multiple database instances when using the Realtime Database emulator. See GitHub issue #3681
Cloud Firestore
Updated an outdated error message to include
!=
andnot-in
as inequality operators. See GitHub issue #4253Fixed an issue in the Transaction API that caused the SDK to return invalid
DocumentReference
objects throughDocumentSnapshot.data()
calls. See GitHub issue #4226
Version 8.2.1 - December 17, 2020
Authentication
- Updated auth token logic to rely on device clock time instead of server time. This fixes an issue seen when a device's clock is skewed by a lot: see GitHub issue #3222
Cloud Firestore
- Fixed an issue that prevented the SDK from automatically retrieving
custom claims for a
User
. See GitHub issue #4175
Version 8.2.0 - December 11, 2020
Authentication
- Added an option to hide the banner in Auth when using the emulator.
Cloud Firestore
Released Firestore Bundles (pre-packaged Firestore data). For NPM users, this can be enabled via an additional import:
firebase/firestore/bundle
. For CDN usage, it is enabled by default.A write to a document that contains
FieldValue
transforms is no longer split up into two separate operations. This reduces the number of writes the backend performs and allows eachWriteBatch
to hold 500 writes regardless of how manyFieldValue
transformations are attached.
Performance Monitoring
- Changed to dispatch no more than 1000 collected performance events for each network request. Events over the cap will be queued and sent with the next dispatch.
Version 8.1.2 - December 3, 2020
Authentication
- Fixed an issue with IndexedDB retry logic causing uncaught errors.
Cloud Firestore
Fixed a bug that prevented usage of
FieldPath
objects with multiple special characters.Fixes an issue that returned invalid
DocumentReference
instances fromQuerySnapshot
objects. See GitHub issue #4125
Testing SDK
- Fixed
assertFails
not recognizingpermission-denied
errors from Realtime Database.
Version 8.1.1 - November 19, 2020
Realtime Database
- Added the missing type definition for
Query.get()
.
Cloud Firestore
- Fixed an issue that prevented
experimentalAutoDetectLongPolling
from working correctly.
Version 8.1.0 - November 19, 2020
Realtime Database
- We have identified an issue in the newly added
Query.get()
API. This causes data to be returned which doesn't match the Query filters. We are working on providing a fix. - Added a database query
get
method that returns server results when connected.
Cloud Firestore
- Fixed a regression introduced in v8.0.2 that returned invalid values for
DocumentChange.newIndex
. See GitHub issue #4071
Version 8.0.2 - November 12, 2020
Authentication
- The SDK now retries IndexedDB errors a fixed number of times to handle connection issues in mobile WebKit. Fixes GitHub issue #1926.
Cloud Firestore
- Fixed an issue that caused
DocumentReference
objects inDocumentSnapshot
instances to be returned with the custom converter of the originalDocumentReference
.
Version 8.0.1 - November 5, 2020
Cloud Messaging
- Fixed an issue where a silent-push warning was displayed along with
the message shown by
ServiceWorkerRegistration.showNotification
. Added a timeout for theonBackgroundMessage
hook so that silent-push warnings won't show ifServiceWorkerRegistration.showNotification
is called inside the hook within 1 second. See GitHub issue #3725.
Testing SDK
- Added a
withFunctionTriggersDisabled
method which runs a user-provided setup function with emulated Cloud Functions triggers disabled. This can be used to import data into the Realtime Database or Cloud Firestore emulators without triggering locally emulated functions. This method only works with Firebase CLI version 8.13.0 or higher.
Version 8.0.0 - October 26, 2020
Breaking change:
browser
fields in package.json files now point to ESM bundles instead of CJS bundles. Users who are using ESM imports must now use the default import instead of a namespace import.Before 8.0.0
import * as firebase from 'firebase/app'
After 8.0.0
import firebase from 'firebase/app'
Code that uses
require('firebase/app')
orrequire('firebase')
will still work, but in order to get proper typings (for code completion, for example) users should change theserequire
calls torequire('firebase/app').default
orrequire('firebase').default
. This is because the SDK now uses typings for the ESM bundle, and the different bundles share one typings file.
Cloud Firestore
Removed the undocumented
Firestore.logLevel
property.Breaking change: Removed deprecated
experimentalTabSynchronization
settings. To enable multi-tab synchronization, usesynchronizeTabs
instead.This release removes runtime type validations that are covered by TypeScript. Developers can use our TypeScript types to validate API usage.
Breaking change: Removed the
timestampsInSnapshots
option fromFirestoreSettings
. Now, Cloud Firestore always returnsTimestamp
values for all timestamp values.Added a
useEmulator(host, port)
method to Cloud Firestore.Removed excess validation of null and NaN values in query filters. This more closely aligns the SDK with the Cloud Firestore backend, which has always accepted null and NaN for all operators.
Cloud Storage
- This release removes runtime type validations that are covered by TypeScript. Developers can use our TypeScript types to validate API usage.
Realtime Database
- Added a
useEmulator(host, port)
method to Realtime Database.
Cloud Functions for Firebase Client SDK
- Added a
useEmulator(host, port)
method to the Cloud Functions for Firebase Client SDK.
Version 7.24.0 - October 15, 2020
Authentication
- Added the ability to configure the SDK to communicate with the Firebase Emulator.
Cloud Firestore
Added a new
experimentalAutoDetectLongPolling
toFirestoreSettings
. When enabled, the SDK's underlying transport layer automatically detects if long-polling should be used. This is very similar toexperimentalForceLongPolling
, but only uses long-polling if required.Fixed a potential issue in our internal queue that could have allowed API calls to be executed out of order.
Testing SDK
Changed to not delete the
uid
property from user auth object ininitializeTestApp()
. See GitHub issue #3920.Fixed the typing for custom claims.
Version 7.23.0 - October 8, 2020
Analytics
- The SDK now warns instead of throwing an error if it detects a browser environment where Analytics does not work.
Cloud Firestore
- The SDK now includes more information in the error message for failed IndexedDB transactions.
Performance Monitoring
- Moved the
loggingEnabled
check to wait until performance initialization finishes, which prevents the SDK from dropping custom traces right after getting theperformance
object. - Throws an exception when
startTime
orduration
is not a positive value in thetrace.record()
API.
Testing SDK
- Added stronger types to the
options.auth
option forinitializeTestApp()
.
Version 7.22.1 - October 5, 2020
Cloud Functions for Firebase Client SDK
- Fixed a bug introduced in 7.21.1 that causes callable functions to throw an error in some environments.
Version 7.22.0 - October 1, 2020
Cloud Functions for Firebase Client SDK
- Users can now set a custom domain for callable functions.
Version 7.21.1 - September 24, 2020
Cloud Firestore
Fixed an issue that prevented
waitForPendingWrites()
from resolving in background tabs when multi-tab is used. See GitHub issue #3816.Fixed a "Comparison with -0" lint warning for customers that build from source. See GitHub issue #3814.
Authentication
- Fixed an encoding issue in the Authentication CDN script for environments that require UTF-8, for example, Chrome extensions. See GitHub issue #414.
Version 7.21.0 - September 17, 2020
Cloud Firestore
- Added
not-in
and!=
query operators for use with.where()
.not-in
finds documents where a specified field’s value is not in a specified array.!=
finds documents where a specified field's value does not equal the specified value. Neither query operator will match documents where the specified field is not present.
- The SDK now uses
FirestoreError
instead ofError
inonSnapshot*()
error callbacks. - Fixed a bug where
CollectionReference.add()
calledFirestoreDataConverter.toFirestore()
twice instead of once. See GitHub issue #3742
Realtime Database
- Fixed detection of Admin SDK context.
Testing SDK
- Fixed a bug preventing users from testing Realtime Database with both the Admin SDK and the client JS SDK.
Version 7.20.0 - September 10, 2020
Analytics
- For apps using v7.20.0 and later,
Firebase dynamically fetches the
measurementId
when your app initializes Analytics. Having this ID in your Firebase config object is optional, but it does serve as a fallback in the rare case that the dynamic fetch fails. Learn more about this field in the Analytics getting started page.
Realtime Database
- The SDK can now infer a default database URL if none is provided in the config.
Cloud Firestore
- Fixed a bug where, if a user change happened while the network connection was disabled, the client did not raise snapshots from cache.
Cloud Messaging
- The SDK no longer opens non-origin links, fixing a potential security issue.
Version 7.19.1 - August 27, 2020
Cloud Firestore
- Added
merge
option tofirestore.settings()
, which merges the provided settings with settings from a previous call. This addresses GitHub issue #3354.
Testing SDK
- Fixed an issue with
assertFails()
. See GitHub issue #3671
Version 7.19.0 - August 20, 2020
Testing SDK
- Released
@firebase/rules-unit-testing
to replace the@firebase/testing
package. The new package is API compatible but has the following breaking behavior changes:assertFails()
now fails only onPERMISSION DENIED
errors, not any error.initializeAdminApp()
now relies onfirebase-admin
rather than imitating the Admin SDK.
Performance Monitoring
- Adds a check to silently prevent Performance Monitoring from initializing if
the required
indexedDB.open()
API is not available in the environment.
Cloud Firestore
terminate()
can now be retried if it fails with an IndexedDB exception. See GitHub issue #2755.Enabled fallback for auto-generated identifiers in environments that support
crypto
but notcrypto.getRandomValues
. See GitHub PR #3487.
Version 7.18.0 - August 13, 2020
Cloud Messaging
Added
onBackgroundMessage
, which is called regardless of whether or not a notification is displayed.getToken
now accepts an options object that includes an optional vapid key and an optional service worker registration.Deprecated
setBackgroundMessageHandler
. Use the new APIonBackgroundMessage
instead.Deprecated
useVapidKey
anduseServiceWorker
. UsegetToken
to set these values instead.Deprecated
onTokenRefresh
which is a no-op API currently.
Cloud Firestore
The SDK no longer crashes with the error "The database connection is closing". Instead, the individual operations that cause this error may be rejected. Addresses GitHub issue #3495.
Fixed a bug that caused slow retries for IndexedDB operations even when a webpage re-entered the foreground.
Analytics
-
analytics.isSupported()
now returnsPromise<false>
for extension environments.
Version 7.17.2 - August 6, 2020
Realtime Database
- Added interface
Database
which is implemented byFirebaseDatabase
. This allows consumer SDKs (such as the Firebase Admin SDK) to export Realtime Database types as an interface.
Cloud Firestore
- Upgraded to the latest version of Google Closure Library and Compiler. Developers will not need to make any changes to their code to handle this change.
Version 7.17.1 - July 24, 2020
Analytics
- Added an omitted dependency update that caused Analytics to error on initialization. Addresses GitHub issue #3469.
Version 7.17.0 - July 23, 2020
Analytics
- Added an
analytics.isSupported()
method which returns true if the current browser context supports Analytics. This can used in a conditional to prevent initialization of Analytics in environments that don't support it. This check also automatically runs when Analytics is initialized (firebase.analytics()
) and if it finds an unsupported environment, throws an error advising developers to useisSupported()
. Addresses GitHub issue #2393.
Cloud Storage
- Error messages for backend errors now include the backend's response message.
Version 7.16.1 - July 16, 2020
Cloud Firestore
The SDK no longer crashes if an
IndexedDB
failure occurs when unsubscribing from aQuery
.Removed a delay that prevented Firestore from immediately reestablishing a network connection if a connectivity change occurred while the app was in the background.
Realtime Database
- Instead of using production auth, the SDK will use test credentials to connect to the Emulator when Realtime Database is used via the Firebase Admin SDK. Fixes GitHub issue #3144.
Cloud Storage
- Updated the TypeScript types for all APIs using
Observer
s to allow callback omission. Fixes GitHub issue #3158.
Authentication
- Added the
browser
field in package.json.
Version 7.16.0 - July 09, 2020
Cloud Firestore
Added support for
set()
with merge options when usingFirestoreDataConverter
.Re-added the React Native bundle, which allows Cloud Firestore to be used without
btoa/atob
polyfills.Removed internal wrapper around our public API that was meant to prevent incorrect SDK usage for JavaScript users, but caused the SDK to stop working in IE11. See GitHub issue #3305.
FCM
Fixed an issue where we tried to update the token for every
getToken()
call because we don't save the updated token in theIndexedDB
.Fixed an RxJS incompatibility issue by adding support for
onMessage
so the internal callback can work with RxJS'sSubscriber
. See GitHub issue #3142.
Cloud Functions for Firebase Client SDK
- Clear timeout after a successful response or after the request is canceled. Fixes GitHub issue #3289.
Version 7.15.5 - June 25, 2020
Cloud Firestore
- Fixed a bug that sometimes caused Cloud Firestore operations to fail during an auth token change. See GitHub issue #3179
Version 7.15.4 - June 20, 2020
Cloud Firestore
- Removed the React Native entry point due to an issue in our internal library. For Cloud Firestore in React Native, use the browser build and add necessary polyfills. See GitHub issue #2667
Version 7.15.3 - June 19, 2020
Cloud Firestore
- Fixed an issue that prevented Cloud Firestore from working in React Native. See GitHub issue #2667
Version 7.15.2 - June 18, 2020
Realtime Database
- Added an internal HTTP header to the WebSocket connection.
Cloud Firestore
- Updated
grpc-js
to version^1.0.0
.
Version 7.15.1 - June 11, 2020
Cloud Firestore
Fixed an issue that prevented the client from connecting to the backend immediately after a user signed in. See GitHub issue #2923.
Fixed a regression introduced in PR #3048 that changed the
context.path
variable fromPath|null
toundefined|null
. See GitHub issue #3172.
Version 7.15.0 - June 04, 2020
Cloud Firestore
Added an
experimentalForceOwningTab
setting that can be used to enable persistence in environments withoutlocalStorage
, which allows persistence to be used in Web Workers. See GitHub issue #983.All known failure cases for
IndexedDB
-related crashes have now been addressed. Instead of crashing the client,IndexedDB
failures result in rejected operations (for example, rejectedWrites
or erroredQuery
listeners). If these rejections surface in your app, you can retry these operations whenIndexedDB
access is restored.IndexedDB
failures that occur due to background work are automatically retried.If you continue to see
IndexedDB
-related crashes, please provide feedback GitHub issue #2755.
Version 7.14.6 - May 29, 2020
Cloud Firestore
Fixed an issue that could cause Cloud Firestore to temporarily go offline when a Window visibility event occurred.
Added support for calling
FirebaseFirestore.settings
with{ ignoreUndefinedProperties: true }
. When this parameter is set, Cloud Firestore ignores undefined properties inside objects rather than rejecting the API call.
Version 7.14.5 - May 21, 2020
Realtime Database
- Fixed a Realtime Database URL parsing bug to support domains with more than 3 components.
Version 7.14.4 - May 14, 2020
Cloud Firestore
- Fixed a regression introduced in v7.14.2 that incorrectly applied
a
FieldValue.increment
in combination withset({...}, {merge: true})
.
Version 7.14.3 - May 07, 2020
Cloud Firestore
- Cloud Firestore now rejects
onSnapshot()
listeners if they cannot be registered inIndexedDB
. Previously, these errors crashed the client.
Version 7.14.2 - April 23, 2020
Cloud Firestore
Firestore now rejects write operations if they cannot be persisted in IndexedDB. Previously, these errors crashed the client.
Fixed a source of IndexedDB-related crashes for tabs that receive multi-tab notifications while the file system is locked.
FCM
- Changed to compare hostname instead of the entire URL to decide if there is a matching window client. See GitHub issue #390.
Version 7.14.1 - April 16, 2020
Cloud Storage
- Fixed an issue that occurred when users tried to retrieve data from multiple Cloud Storage instances.
Authentication
- Fixed a bug that occurred when users set persistence to
LOCAL
in a worker environment. See GitHub issue #2903.
Version 7.14.0 - April 9, 2020
Cloud Firestore
- Replaced
grpc
with@grpc/grpc-js
in the Node.js builds. As a result, the minimum supported NodeJS version is now8.13.0
.
Realtime Database
- Added
ServerValue.increment()
to support atomic field value increments without transactions.
Performance Monitoring
- Updated internal performance event transport mechanism.
Version 7.13.2 - April 2, 2020
Cloud Firestore
Fixed a regression introduced by a crypto change in 7.13.0 that breaks Firestore in IE 11. See GitHub issue #2827.
Fixed an issue that causes excessive reads in large changesets over slow connections. See GitHub issue #2683.
Fixed an issue causing
WriteBatch.commit()
to resolve one loop later than.set
and.update
. See GitHub issue #2822.
FCM
- Fixed an issue introduced in 7.7.0, when FCM switched to provide base64-encoded VAPID keys to PushManager for push subscription. For backward compatibility, the SDK has switched back to using VAPID keys in type ArrayBuffer. See Github issue #2712.
Version 7.13.1 - March 27, 2020
Cloud Firestore
- Removed a dangling comma in package.json.
Version 7.13.0 - March 26, 2020
Cloud Firestore
Added a memory-only
firestore
build. Instead of persisting data in theIndexedDB
, it keeps it in memory. This build is about 14% smaller than the full featured build because it doesn't haveIndexedDB
related code. If you don't care about persisting data across sessions, or your code runs in environments that don't supportIndexedDB
, use this build to reduce your application size. It is available under a special import path. You can import it this way:import * as firebase from 'firebase/app'; import 'firebase/firestore/memory';
// Don't change the format for any other products. import 'firebase/auth'; // etc.
Or if using the 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. -->
Analytics
- Added convenient enums and function overloads to support enhanced ecommerce events.
Version 7.12.0 - March 19, 2020
- Added two methods for logging:
firebase.setLogLevel()
, which sets the level above which Firebase log messages will be shown.firebase.onLog()
, which adds a user-specified callback run on each log event. The callback has access to log level, message, and name of the package (e.g. "@firebase/firestore") that generated the log message.
Cloud Firestore
- Fixed an issue where the number value
-0.0
would lose its sign when stored in Cloud Firestore.
Version 7.11.0 - March 12, 2020
Authentication
- Added multi-factor authentication support for Google Cloud Identity Platform projects.
Version 7.10.0 - March 5, 2020
Cloud Firestore
- Implemented
Timestamp.valueOf()
so thatTimestamp
objects can be compared for relative ordering using the JavaScript arithmetic comparison operators. Fixes GitHub issue #2632.
Version 7.9.3 - February 28, 2020
Cloud Storage
- Fixed an issue introduced in 7.9.2 where Cloud Storage could throw a CORS error (GitHub issue).
Version 7.9.2 - February 27, 2020
Cloud Firestore
- Fixed an issue where
OnlineState
value was mangled and was not being parsed correctly.
Version 7.9.1 - February 21, 2020
Cloud Firestore
- Fixed an issue introduced in 7.9.0 where minified Cloud Firestore Node and CJS bundles do not work.
Version 7.9.0 - February 20, 2020
Cloud Firestore
The minified version of the Cloud Firestore library, added as an experimental option in 7.8.0, is now the default Cloud Firestore bundle. The steps listed in the 7.8.0 release notes are no longer necessary to get the minified bundle. This minification currently reduces the total bundle size by approximately 15% as of this build.
Fixed an issue where auth credentials were not respected in Cordova environments. See Github issue #2626.
Fixed a performance regression introduced by the addition of
Query.limitToLast(n: number)
in Firestore 1.7.0 (Firebase 7.3.0). See Github issue #2620.
FCM
- Fix an issue where service workers do not reliably update after upgrading to a new version of Firebase. See Github issue #2590.
Version 7.8.2 - February 13, 2020
Cloud Firestore
- Fixed an issue where
CollectionReference.add()
would reject custom types when usingwithConverter()
. Github issue #2606.
Version 7.8.1 - February 6, 2020
Cloud Firestore
- Fix a bug causing intermittent errors when the same app is open in multiple tabs. Addresses Github issue #2555.
Version 7.8.0 - January 30, 2020
Cloud Firestore
Experimental: Added an alternative minified import for the
firestore
package. Users who want to try this experimental import can do it this way: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.
Or if using the 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. -->
Version 7.7.0 - January 16, 2020
Cloud Firestore
Fixed an issue where auth credentials were not respected in some Firefox or Chrome extensions. See Github issue #1491.
Firestore previously required that every document read in a transaction must also be written. This requirement has been removed, and you can now read a document in a transaction without writing to it.
Performance Monitoring
- Updated internal transport protocol from proto2 to proto3.
Authentication
- Added missing constructor for
SAMLAuthProvider
type.
Version 7.6.2 - January 9, 2020
Cloud Functions for Firebase Client SDK
- Fixed a bug causing notification permissions requests to pop up when
using
functions.httpsCallable()
.
Realtime Database
- Reverted a change causing slow update performance as reported in Github issue #2487.
Cloud Firestore
- Fixed an issue where auth credentials were not respected in certain browser environments (Electron 7, IE11 in trusted zone, UWP apps). Addresses