To review release notes for the Firebase console and for other Firebase platforms and related SDKs, refer to the Firebase Release Notes.
Version 12.7.0 - 24 October, 2024
- This version pins
@firebase/database-compat
tov1.0.8
and@firebase/database-types
tov1.0.5
to maintain compatibility with Node.js 14 and 16. Node.js 14 and 16 support is deprecated and Node.js 18+ will be required in the next major version.
Cloud Functions
- Added support for both partial and full resource names when enqueueing tasks in emulator.
Version 12.6.0 - 30 September, 2024
Firebase Data Connect
Added the new
executeGraphql()
andexecuteGraphqlRead()
APIs to perform administrative queries and mutations on a Firebase Data Connect service.Added support for the
DATA_CONNECT_EMULATOR_HOST
environment variable.
Authentication
- Use
Math.floor()
when settingvalidDuration
variable in thecreateSessionCookie()
API.
Version 12.5.0 - 12 September, 2024
Firebase App Check
- Added support for
httpAgent
inJwksFetcher
. Thanks hermanho for the contribution.
Remote Config
- Added support for custom conditions when configuring Remote Config server applications. This feature lets you send custom Remote Config parameter values to specific clients based on the conditions you define.
Version 12.4.0 - 22 August, 2024
Cloud Functions
- Added support for the
CLOUD_TASKS_EMULATOR_HOST
environment variable.
Cloud Messaging
-
sendToTopic()
andsendToCondition()
APIs are now deprecated. To send messages to topics and conditions use thesend()
API instead.
Version 12.3.1 - 08 August, 2024
- Fixed the internal token handling method to return an existing promise to a token if one exists instead of creating a new token.
Version 12.3.0 - 25 July, 2024
Firebase Remote Config
- Replaced the
long.js
dependency withBigInt
.
Cloud Messaging
- Added HTTP/2 support for
sendEach()
andsendEachForMulticast()
. To use the legacy HTTP/1.1 transport, use theenableLegacyTransport()
method. TheenableLegacyTransport()
will be removed when the HTTP/2 transport implementation reaches the same stability as the legacy HTTP/1.1 implementation.
Version 12.2.0 - 20 June, 2024
Deprecated support for Node.js 16. Instead use Node.js 18 or higher when deploying the Admin SDK. Node.js 16 support will be dropped in the next major version.
Fixed optional chaining in
FirebaseError
type that caused issues when usingvitest
.Added
x-goog-user-project
header to outgoing requests. Thanks foxrafa for the contribution.
Firebase Remote Config
- Replaced the
farmhash
package with thefarmhash-modern
package to prevent errors when Python is not installed.
Version 12.1.1 - 21 May, 2024s
- Exported error classes for better error handling. Thanks IchordeDionysos for the contribution.
Version 12.1.0 - 16 April, 2024
Firebase Remote Config
- Added server-side Remote Config support.
Version 12.0.0 - 07 December, 2023
Breaking change: Upgraded the
@google-cloud/firestore
package to v7. This is a breaking change. Refer to the Cloud Firestore release notes for more details.Breaking change: Upgraded the
@google-cloud/storage
package to v7. This is a breaking change. Refer to the Cloud Storage release notes for more details.Breaking change: Upgraded TypeScript to v5.1.6.
Deprecated support for Node.js 14. Instead use Node.js 16 or higher when deploying the Admin SDK. Node.js 14 support will be dropped in the next major version.
Cloud Firestore
- Upgraded the
google-cloud/firestore
dependency to v7.1.0 to supportsum()
andaverage()
aggregation functions.
Realtime Database
- Upgraded the
@firebase/database-compat
package to v1.
Firebase ML
- Dropped AutoML model support.
Version 11.11.1 - 23 November, 2023
Cloud Firestore
- Upgraded the
google-cloud/firestore
dependency to v6.8.0 to support multiple named databases.
Version 11.11.0 - 28 September, 2023
Authentication
- Added email privacy support in project and tenant configuration.
Version 11.10.1 - 13 July, 2023
Realtime Database
- Fixed an issue which caused the incompatibility in Realtime Database
types in version
11.10.0
.
Version 11.10.0 - 12 July, 2023
Realtime Database
- This version contains a version bump in
@firebase/database-compat
and@firebase/database-types
dependencies that causes an incompatibility in Realtime Database types. This issue was fixed in version11.10.1
.
Cloud Storage
- Added a new
getDownloadURL()
API.
Cloud Functions
- Added the ability to name tasks by including an
id
when enqueueing tasks. - Added the ability to delete an enqueued task if it has not yet completed.
- Headers passed to
TaskQueue
HTTPS handlers are now available in the context/event object.
Cloud Firestore
- Added support for multiple named databases. This feature is currently in public preview.
Authentication
Added
TotpInfo
field to theUserRecord
type.Fixed a memory leak in the internal
http
timeout handling code that affected thelistUsers()
API. Thanks adrianjost for the contribution.
Version 11.9.0 - 30 May, 2023
Authentication
- Added support for configuring password policy in project and tenant configurations.
Cloud Firestore
- Exported
Filter
type from the Cloud Firestore API.
Version 11.8.0 - 04 May, 2023
Firebase App Check
- Added replay protection feature in the App Check
verifyToken()
API.
Version 11.7.0 - 18 April, 2023
Authentication
- Added reCAPTCHA configuration support.
Cloud Messaging
Added
sendEach()
andsendEachForMulticast()
APIs.sendAll()
andsendMulticast()
APIs are now deprecated. UsesendEach()
andsendEachForMulticast()
APIs instead.
Version 11.6.0 - 06 April, 2023
Authentication
- Added
TOTP
as a multi-factor option in project and tenant configuration.
Cloud Messaging
- Deprecated
sendToDevice
andsendToDeviceGroup
methods and their response classes. These methods are removed in the next major version.
Version 11.5.0 - 19 January, 2023
- Added support for initializing the SDK with service account impersonation in Application Default Credentials. Thanks blue-hope for the contribution.
Cloud Firestore
- Fixed a caching issue in the Cloud Firestore API when
initialized with the
preferRest
setting to force the use of REST transport.
Version 11.4.1 - 22 December, 2022
- Updated the
jsonwebtoken
package tov9.0.0
to address security concerns.
Version 11.4.0 - 15 December, 2022
Cloud Firestore
- The Cloud Firestore API now supports the
preferRest
setting to force the use of REST transport until an operation requires gRPC.
Cloud Messaging
- Increased the timeout in the Cloud Messaging batch send API to 15 seconds to avoid duplicate notifications.
Firebase ML
- Deprecated AutoML model support. AutoML model support will be removed in the next major version.
Version 11.3.0 - 17 November, 2022
Firebase Extensions
- Added a new Extensions API to access the Extensions runtime methods.
Version 11.2.1 - 10 November, 2022
Cloud Messaging
- Increased the timeout for Cloud Messaging requests to 15 seconds to avoid duplicate notifications.
Cloud Firestore
- Exposed 'ReadWriteTransactionOptions' from the
firestore
module. Thanks naodya for the contribution.
Version 11.2.0 - 17 October, 2022
Authentication
- Added SMS region config support for tenant and project configuration.
Cloud Firestore
- Upgraded the
@google-cloud/firestore
dependency to v6.4.0 to support theCOUNT
queries API.
Version 11.1.0 - 06 October, 2022
Cloud Firestore
- Upgraded the
@google-cloud/firestore
dependency to v6.3.0.
Cloud Storage
- Upgraded the
@google-cloud/storage
dependency to v6.5.2.
Version 11.0.1 - 28 July, 2022
- The
admin.securityRules()
API now creates a new Security Rules release if one does not already exist.
Authentication
- The
toJSON()
method inUserMetadata
now includeslastRefreshTime
in the returned JSON output.
Version 11.0.0 - 16 June, 2022
Breaking change: Dropped support for Node.js 12. Developers should use Node.js 14 or higher when deploying the Admin SDK.
Breaking change: Upgraded TypeScript to v4.6.4.
Breaking change: Upgraded the
@google-cloud/firestore
package to v5. This contains breaking changes. Refer to the Cloud Firestore release notes for more details.Breaking change: Upgraded the
@google-cloud/storage
package to v6. This contains breaking changes. Refer to the Cloud Storage release notes for more details.
Version 10.3.0 - 09 June, 2022
Deprecated support for Node.js 12. Instead use Node.js 14 or higher when deploying the Admin SDK. Node.js 12 support will be dropped in the next major version.
Replaced the
dicer
package with@fastify/busboy
to address security issues indicer
.
Version 10.2.0 - 05 May, 2022
Firebase App Check
- Updated Firebase App Check APIs to use the
v1
service endpoint instead of thev1beta
endpoint.
Authentication
- Added the email action link generation APIs for creating links for
the request type
VERIFY_AND_CHANGE_EMAIL
viaauth.generateVerifyAndChangeEmailLink()
.
Cloud Functions
- Added an API to enqueue functions with Cloud Tasks.
Version 10.1.0 - 21 April, 2022
- Upgraded the
node-forge
dependency to v1.3.1.
Cloud Firestore
- Upgraded the
@google-cloud/firestore
dependency to v4.15.1.
Cloud Storage
- Upgraded the
@google-cloud/storage
dependency to v5.18.3.
Version 10.0.2 - 21 January, 2022
- Upgraded the
node-forge
dependency to v1.0.0, which includes fixes for a couple of known issues in previous package versions. (GitHub GHSA-5rrq-pxf6-6jx5, GitHub GHSA-gf8q-jrpm-jvxq)
Version 10.0.1 - 15 December, 2021
Authentication
- The
createSessionCookie()
API now correctly parses and mapsUSER_DISABLED
server errors. - Removed request body from the
deleteTenant()
API.
Cloud Firestore
- Exposed
BundleBuilder
,DocumentChange
,OrderByDirection
,SetOptions
, andWhereFilterOp
Firestore SDK types from thefirestore
module and theadmin.firestore
namespace.
Version 10.0.0 - 14 October, 2021
- The Admin SDK now requires Node.js 12 or higher. Node.js 10 support has been discontinued.
- The Admin SDK now exposes a series of ES module entry points. Developers are recommended to import Admin SDK APIs from these entry points. The namespaced version of the API will be removed in a future major release. Refer to the migration guide for details on how to update your existing code to use the new ES module entry points.
- The new module entry points can be used in native ESM runtimes.
You can enable the native ESM support on a server running Node.js 12+ by
setting the
type: "module"
parameter in your project'spackage.json
file. See Node.js documentation for more details.
Version 9.12.0 - 28 September, 2021
Firebase Remote Config
- Added support for Parameter value data types.
Realtime Database
- Refactored the
admin.database()
API to use the new@firebase/database-compat
package under the hood. This helps avoid several dependency conflicts and type compilation errors when using the Firebase Web SDK packages alongside the Admin SDK.
Version 9.11.1 - 19 August, 2021
Authentication
- When
checkRevoked
is set totrue
, theverifyIdToken()
andverifySessionCookie()
APIs now throw an error if the user record is disabled.
Version 9.11.0 - 15 July, 2021
Firebase App Check
- The
createToken()
API now supports configuring theTTL
of the returned Firebase App Check token.
Version 9.10.0 - 24 June, 2021
Authentication
- Redefined
AuthProviderConfig
,CreateMultiFactorInfoRequest
andUpdateMultiFactorInfoRequest
interfaces as TypeScript union types. This enables simpler and more idiomatic use of these types in developer applications.
Firebase Installations
- Added a new
admin.installations()
API to replace the existingadmin.instanceId()
API. - The
admin.instanceId()
API is now deprecated and the developers are advised to migrate to theadmin.installations()
API for deleting Firebase instance IDs and installation IDs.
Version 9.9.0 - 26 May, 2021
- The Admin SDK now requires Node.js 10.13.0 or higher.
Authentication
- Made multi-factor authentication
uid
optional forupdateUser
operations. - Added support for configuring the authorization code flow for
OIDC providers (previously only supported the
idToken
flow). - Added
OAuthResponseType
for specifying theresponseType
in OIDC provider flow. - Added
INVALID_OAUTH_RESPONSETYPE
andMISSING_OAUTH_CLIENT_SECRET
error codes.
Version 9.8.0 - 10 May, 2021
- Upgraded the
@types/node
dependency to v12.12.47. Thanks nikhilag for the contribution.
Authentication
- The method
generatePasswordResetLink()
now throws anauth/email-not-found
error code if no user exists for the specified email address.
Realtime Database
- Upgraded the
@firebase/database
dependency to version 0.10.0. This makes thestartAfter
andendBefore
query filters available for Admin SDK users.
Firebase App Check
- Added Firebase abuse reduction support APIs.
Version 9.7.0 - 27 April, 2021
Cloud Storage
- Added support for the
FIREBASE_STORAGE_EMULATOR_HOST
environment variable.
Realtime Database
- Fixed a token refresh livelock that affected the Cloud Functions for Firebase users.
Version 9.6.0 - 29 March, 2021
- Improved OAuth 2.0 token caching and management. The SDK now treats any OAuth 2.0 token 5 minutes away from expiration as already expired, and proactively refreshes it. This helps avoid certain types of authorization-related race conditions.
- The periodic token refresher background task has been decoupled from
the SDK core and moved into the RTDB module. This task no longer starts
automatically unless the
admin.database()
API is explicitly invoked.
Realtime Database
- Rules management APIs now support the Firebase emulator suite.
Methods like
getRules()
andsetRules()
will automatically connect to the local emulator when the emulator mode is enabled.
Version 9.5.0 - 10 February, 2021
Authentication
- Added a new
getUserByProviderUid()
method to look up user accounts by their providers. - The
updateUser()
method now supports linking a federated ID with a user account. - Allowed enabling of anonymous provider via tenant configuration.
- The
verifyIdToken()
method now fully supports the Authentication emulator.
Cloud Messaging
- Exported all message types so they can be used by consumers. Thanks BorntraegerMarc for the contribution.
Version 9.4.2 - 09 December, 2020
Cloud Messaging
- Support arbitrary custom values in the
ApnsPayload
type.
Realtime Database
- Upgraded dependencies
@firebase/database
and@firebase/database-types
to the latest available versions. This resolves an inconsistency in the published typings of the Database API.
Version 9.4.1 - 13 November, 2020
Firebase Remote Config
- Fixed a timestamp parsing issue in Remote Config template
Version
metadata that was causing Firebase Remote Config API operations to fail.
Version 9.4.0 - 12 November, 2020
Cloud Firestore
- Exposed several new types from the
admin.firestore
namespace. Newly exposed types includeGrpcStatus
,FirestoreDataConverter
,UpdateData
, and more. - Upgraded the
@google-cloud/firestore
dependency to v4.5.0.
Authentication
- Fixed a bug that was causing credential lookup errors when invoking some APIs against the emulator.
Version 9.3.0 - 22 October, 2020
Authentication
- Added support for generating unsigned custom tokens for testing.
- Added support for verifying test ID tokens.
Version 9.2.0 - 15 September, 2020
Firebase ML
- Added support for creating, updating, getting, listing, publishing, unpublishing, and deleting Firebase-hosted custom ML models created with AutoML.
Version 9.1.1 - 20 August, 2020
Firebase Remote Config
- Added missing type definition for
ListVersionsOptions
. Thanks CodingAleCR for the contribution.
Version 9.1.0 - 13 August, 2020
Authentication
- Added the ability to enable/disable multi-factor authentication
with SMS on a Google Cloud Identity Platform tenant. Existing APIs like
createTenant()
andupdateTenant()
now support configuring multi-factor authentication and testing phone number/code pairs on a specified tenant. - Made
displayName
optional inAuthProviderConfig
typings.
Version 9.0.0 - 14 July, 2020
- The Admin SDK now requires Node.js 10 or higher. Node.js 8 support has been discontinued.
- Upgraded dependency on the
@google-cloud/firestore
package to v4. - Upgraded dependency on the
@google-cloud/storage
package to v5.
Version 8.13.0 - 29 June, 2020
Authentication
- Fixed a timestamp parsing issue in the
UserMetadata.lastRefreshTime
field. - The
lastRefreshTime
field has been removed from theUserMetadataRequest
type used in theimportUsers()
API. Setting this field is currently not supported in the Firebase Authentication backend. - Added
GetUsersResult
andDeleteUsersResults
interfaces to the exposed typings.
Firebase Remote Config
- Added version management support for the
admin.remoteConfig()
API. This API now supportslistVersions()
,getTemplateAtVersion()
, androllback()
operations to help developers programmatically manage their Remote Config templates.
Version 8.12.1 - 08 May, 2020
Authentication
- Fixed the typings of the
UserMetadata
type to avoid a potentially breaking change.
Version 8.12.0 - 06 May, 2020
Authentication
- Added
getUsers()
anddeleteUsers()
APIs for retrieving and deleting user accounts in bulk. - Updated the typings of the
customClaims
attribute onUserRecord
andUserImportRecord
interfaces.
Version 8.11.0 - 22 April, 2020
Authentication
- Exposed
email
,email_verified
,phone_number
, andpicture
fields from theDecodedIdToken
type.
Realtime Database
- Upgraded
@firebase/database
dependency to v0.6.0, which provides a newadmin.database.ServerValue.increment()
function and fixed a database URL parsing bug to support domains with more than 3 components.
Firebase ML
- Added a new
admin.machineLearning()
API for creating, updating, getting, listing, publishing, unpublishing, and deleting Firebase-hosted custom ML models.
Firebase Remote Config
- Added a new
admin.remoteConfig()
API. This API enables Firebase developers to programmatically manage the set of JSON-formatted parameters and conditions known as the Remote Config template.
Version 8.10.0 - 12 March, 2020
Authentication
- Added multi-factor authentication support with SMS for Google
Cloud Identity Platform.
Existing APIs like
createUser()
andupdateUser()
now support configuring multi-factor authentication settings on user accounts. See documentation for more details and code samples. - Updated typings of the
UserRecord.customClaims
attribute to allow indexing by string keys. Thanks wSedlacek for the contribution. - Fixed a timestamp rounding error in the
revokeRefreshTokens()
API that caused some race conditions.
Version 8.9.2 - 23 January, 2020
- Fixed a credential loading issue that prevented some functions from being deployed via the Firebase CLI.
Version 8.9.1 - 15 January, 2020
Authentication
- Fixed the inability to discover the project ID when running on GCP managed environments.
Version 8.9.0 - 19 December, 2019
- Fixed a bug in the
admin.instanceId().deleteInstanceId()
API that caused errors even when the operation was completed successfully in the backend. - Upgraded the
@google-cloud/firestore
dependency to v3.0.0. See the Firestore release notes for more details.
Cloud Messaging
- The
sendMulticast()
API now correctly copies thefcmOptions
when sending a message to multiple recipients.
Realtime Database
- Upgraded the
@firebase/database
dependency to v0.5.17.
Version 8.8.0 - 19 November, 2019
Cloud Firestore
- Upgraded
@google-cloud/firestore
dependency version to 2.6.0. Thanks arjunyel for the contribution.
Cloud Storage
- Upgraded
@google-cloud/storage
dependency version to 4.1.2. This version contains some minor breaking changes. Check the release notes of the dependency for more information. Thanks arjunyel for the contribution.
Authentication
- The
verifyIdToken()
method now correctly uses thehttp.Agent
configured during SDK initialization.
Cloud Messaging
- Batch messaging APIs
sendAll()
andsendMulticast()
now support sending up to 500 messages in a single call.
Version 8.7.0 - 30 October, 2019
Cloud Messaging
- Added a series of new parameters to the
AndroidNotification
class that allow further customization of notifications that target Android devices.
Version 8.6.1 - 16 October, 2019
Authentication
-
UserRecord
no longer exposes password hashes that are redacted due to lack of permissions in the service account credentials. - Updated the typings of the
setCustomUserClaims()
API to acceptnull
.
Version 8.6.0 - 18 September, 2019
- Added a new
admin.securityRules()
API for managing Firebase security rules applied on services like Cloud Firestore and Cloud Storage. See the Firebase documentation to learn more about how to use the Admin SDK to manage and deploy security rules. - Added
getFirestoreRuleset()
andgetStorageRuleset()
methods for retrieving rulesets that are currently in effect. - Added
releaseFirestoreRuleset()
andreleaseStorageRuleset()
methods for creating new rulesets and applying them to Cloud Firestore and Cloud Storage. - Added
getRuleset()
,createRuleset()
anddeleteRuleset()
methods for managing the lifecycle of a ruleset.
Cloud Messaging
- Added new APIs for specifying an image URL in notifications.
Version 8.5.0 - 05 September, 2019
Authentication
- Added multi-tenancy support to the authentication service (Google
Cloud Identity Platform project required). Tenant related APIs are exposed via
tenantManager()
on theadmin.auth
interface. - Added tenant management APIs
authForTenant()
,getTenant()
,listTenants()
,deleteTenant()
,createTenant()
andupdateTenant()
to the newly definedTenantManager
. - Defined
TenantAwareAuth
interface retrieved viaTenantManager#authForTenant()
for managing users, configuring SAML/OIDC providers, generating email links for password reset, email verification, etc for specific tenants.
Realtime Database
- Upgraded
@firebase/database
dependency version to 0.5.1. This helps avoid some peer dependency warnings that were observed during package installation.
Version 8.4.0 - 21 August, 2019
Cloud Messaging
- Added support for specifying Analytics labels for notifications. Thanks chemidy for the contribution.
Version 8.3.0 - July 24, 2019
Realtime Database
- Added an
admin.database().getRules()
method to retrieve the currently applied Realtime Database rules text. - Added an
admin.database().getRulesJSON()
method to retrieve the currently applied Realtime Database rules as a parsed JSON object. - Added an
admin.database().setRules()
method to update Realtime Database rules. - Downgraded the dependency on the
@firebase/app
package to a dev dependency.
Authentication
- Implemented additional argument validation in the
admin.auth().importUsers()
API.
Cloud Storage
- Upgraded the
@google-cloud/storage
dependency to v3.0.0. This new major version drops support for Node.js versions older than v8. Sincefirebase-admin
already supports only Node.js v8 and above, this does not have a noticeable impact on users of the Admin SDK.
Version 8.2.0 - June 19, 2019
- Updated the metadata server URL (used by the application default
credentials) to the
v1
endpoint. This makes it possible to use the SDK in Google Kubernetes Engine again.
Realtime Database
- Upgraded the
@firebase/database
dependency to v0.4.4.
Firebase Cloud Messaging
- Gracefully handling array-like objects in
messaging.sendAll()
andmessaging.sendMulticast()
APIs.
Version 8.1.0 - June 11, 2019
- The SDK now automatically retries HTTP calls failing due to 503 errors.
Project Management
- Added a new
projectManagement.listAppMetadata()
API to list the summarized details of up to 100 apps in a Firebase project. - Added a new
projectManagement.setDisplayName()
API to update the display name of a Firebase project.
Version 8.0.0 - May 23, 2019
- The Admin SDK no longer supports Node 6. Developers must use Node 8.13.0 or higher when deploying the Admin SDK.
Cloud Firestore
- Upgraded the Cloud Firestore client dependency to v2.0.0. This upgrade comes with a pure JS gRPC client implementation that is much smaller on disk.
Cloud Storage
- Upgraded the Cloud Storage client dependency to v2.5.0.
Version 7.4.0 - May 21, 2019
- Support for Node 6 is now deprecated. Developers are recommended to use Node 8 or higher when deploying the Admin SDK. An upcoming release will completely drop Node 6 support.
Cloud Firestore
- Upgraded the Cloud Firestore client dependency to v1.3.0. This upgrade comes with a new API for executing collection group queries.
Realtime Database
- Updated typings of the
admin.database.ThenableReference
type to extend from the built-inPromise
type.
Version 7.3.0 - April 17, 2019
Authentication
- Added new APIs for managing SAML and OIDC provider
configurations. These APIs support CRUD operations on auth provider
configurations:
auth.listProviderConfigs()
auth.getProviderConfig()
auth.deleteProviderConfig()
auth.updateProviderConfig()
auth.createProviderConfig()
Version 7.2.0 - March 28, 2019
Cloud Firestore
- Upgraded the Cloud Firestore client dependency to
v1.2.0.
This upgrade exposes the
v1beta
andv1
clients, which provide direct access to the underlying Firestore and Firestore Admin RPCs. Please note that you must provide your Firebase credentials directly to these clients.
Version 7.1.1 - March 20, 2019
Firebase Cloud Messaging
- Fixed a bug in the FCM batch APIs that prevented them from
correctly handling some message parameters like
AndroidConfig.ttl
.
Version 7.1.0 - March 14, 2019
Firebase Cloud Messaging
- A new
messaging.sendMulticast()
API for sending a message to a list of device registration tokens. - A new
messaging.sendAll()
API for sending a list of messages as a single batch.
Authentication
- Improved typings of the
auth.UpdateRequest
interface to clearly specify the nullable fields.
Cloud Firestore
- Upgraded the Cloud Firestore client dependency to v1.1.0.
Version 7.0.0 - January 31, 2019
- Updated the Google Cloud Firestore client to v1.0.1. This contains breaking changes. Refer to the Cloud Firestore release notes for more details and migration instructions.
- Updated the Google Cloud Storage client to v2.3.0. This contains breaking changes. Refer to the Cloud Storage release notes for more details and migration instructions.
Authentication
- The
verifyIdToken()
andverifySessionCookie()
methods now returnauth/id-token-expired
andauth/session-cookie-expired
error codes for expired JWTs. - Credentials-related errors are now reported with additional helpful details.
Version 6.5.1 - January 23, 2019
- Setting the
GOOGLE_APPLICATION_CREDENTIALS
environment variable to a refresh token file instead of a service account file is now supported. Thanks yinzara for the contribution. - Implemented an environment check that is executed at package import time. The Admin SDK logs a warning if imported into a client environment such as a web browser.
Version 6.5.0 - January 9, 2019
- A new
shaCertificate()
method for creating instances ofadmin.projectManagement.ShaCertificate
.
Authentication
- Fixed how the SDK parses the error codes sent by auth backend servers.
- Correctly marked optional fields in the
UserRecord
type.
Version 6.4.0 - December 12, 2018
-
AppOptions
now accepts an optionalhttp.Agent
object. Thehttp.Agent
specified via this API is used when the SDK makes backend HTTP calls. This can be used when it is required to deploy the Admin SDK behind a proxy. -
admin.credential.cert()
,admin.credential.applicationDefault()
, andadmin.credential.refreshToken()
methods now accept anhttp.Agent
as an optional argument. If specified, thehttp.Agent
is used when calling Google backend servers to fetch OAuth2 access tokens.
Cloud Messaging
- The
messaging.Aps
type now supports configuring a critical alert sound. A newmessaging.CriticalSound
type has been introduced for this purpose. - The
messaging.AndroidNotification
type now supports specifying achannelId
field when sending messages to Android O clients.
Version 6.3.0 - November 28, 2018
- A new
admin.projectManagement()
API for managing apps in a Firebase project. - New
listAndroidApps()
andlistIosApps()
methods for listing the existing apps in a project. - New
createAndroidApp()
andcreateIosApp()
methods for creating new apps in a project. - New
AndroidApp
andIosApp
APIs for updating individual apps.
Cloud Messaging
-
ApsAlert
type now supports specifying a subtitle. Thanks chemidy for the contribution.
Version 6.2.0 - November 19, 2018
Authentication
- Added the email action link generation APIs for creating links
for password reset, email verification and email link sign-in via
auth.generatePasswordResetLink()
,auth.generateEmailVerificationLink()
andauth.generateSignInWithEmailLink()
. Refer documentation for more details and code samples.
Cloud Firestore
- Upgraded Cloud Firestore client to v0.19.0.
- Exposed the
Transaction
type from theadmin.firestore
namespace.
Cloud Messaging
- Improved error handling in FCM. The SDK now checks the key
type.googleapis.com/google.firebase.fcm.v1.FcmError
to set error code. Thanks chemidy for the contribution.
Version 6.1.0 - October 22, 2018
- Upgraded the Cloud Firestore client from 0.16.0 to 0.18.0.
Version 6.0.0 - August 9, 2018
- The Admin SDK no longer supports Node.js 4. Developers must use Node.js 6 or higher to deploy the Admin SDK.
- The Admin SDK now installs Cloud Firestore and Cloud Storage libraries as optional dependencies. SDK installation no longer fails when encountering errors from Cloud Firestore, Cloud Storage or gRPC dependencies.
- Upgraded the Cloud Firestore client from 0.15.4 to
0.16.0.
This version contains a new
array-contains
query operator andFieldValue.arrayUnion()
andFieldValue.arrayRemove()
APIs.
Version 5.13.1 - July 23, 2018
- Upgraded the Cloud Firestore client from 0.15.2 to 0.15.4. This version contains a bug fix that enables using it in environments where application default credentials are not available.
Version 5.13.0 - July 17, 2018
- The Admin SDK can now read the Firebase/Google Cloud Platform
project ID from both
GCLOUD_PROJECT
andGOOGLE_CLOUD_PROJECT
environment variables. - Upgraded the Cloud Firestore client from 0.14.0 to 0.15.2. This version of the Firestore client changes how date values are handled.
Authentication
- The Admin SDK can now create custom tokens without being initialized with service account credentials.
- The SDK accepts a new
serviceAccountId
app option, which can be used to specify just the client email of a service account. - When deployed in an environment managed by Google (e.g. Google Cloud Functions), the SDK can auto discover a service account ID without any explicit configuration.
Realtime Database
- Updated typings of the
admin.database.Query.once()
method to return a more specific type.
Cloud Messaging
- Updated typings of the
admin.messaging.WebpushNotification
type to include all supported notification fields.
Version 5.12.1 - May 15, 2018
- Admin SDK now lazy loads all child namespaces and certain heavy dependencies for faster load times. This change also ensures that only the sources for namespaces that are actually used get loaded into the Node.js process.
- Upgraded the Cloud Firestore client from 0.13.0 to 0.14.0.
Version 5.12.0 - April 05, 2018
Authentication
- A new
auth.createSessionCookie()
method for creating a session cookie from a Firebase ID token. - A new
auth.verifySessionCookie()
method for validating a given session cookie string.
Cloud Messaging
- Added the
mutableContent
optional field to themessaging.Aps
type. This can be used to set themutable-content
property when sending FCM messages to APNS targets. - Added support for specifying arbitrary key-value fields in the
messaging.Aps
type.
Version 5.11.0 - March 15, 2018
Authentication
- A new
auth.importUsers()
method for importing users to Firebase Auth in bulk.
Version 5.10.0 - March 08, 2018
- Upgraded the Realtime Database client from 0.1.11 to 0.2.0. This
provides the ability to call
admin.database().ref()
with an existing reference as the argument. - Upgraded the Cloud Firestore client from 0.12.0 to 0.13.0.
Version 5.9.1 - February 28, 2018
- The
admin.initializeApp()
method can now be invoked without acredential
option. The SDK uses Google Application Default Credentials when initialized this way. - Upgraded the Cloud Firestore client from 0.11.1 to 0.12.0.
- Upgraded the Cloud Storage client from 1.2.1 to 1.6.0.
- Upgraded the Realtime Database client from 0.1.3 to 0.1.11.
Version 5.9.0 - February 14, 2018
Cloud Messaging
- A new
messaging.send()
method for sending FCM messages.
Version 5.8.2 - January 30, 2018
- Exposed
admin.firestore.DocumentReference
andadmin.firestore.DocumentSnapshot
types from the Admin SDK typings. - Upgraded Firestore dependency version to 0.11.2. This includes
several bug fixes including a fix in the
DocumentReference.update()
operation.
Version 5.8.1 - January 17, 2018
- Upgraded Firestore dependency version from 0.10.0 to 0.11.1. This includes several bug fixes in Cloud Firestore.
Version 5.8.0 - January 11, 2018
Initialization
- The
admin.initializeApp()
method can now be invoked without any arguments. This initializes an app using Google Application Default Credentials, and otherAppOptions
loaded from theFIREBASE_CONFIG
environment variable.
Authentication
- Upgraded the
jsonwebtoken
library to 8.1.0.
Version 5.7.0 - January 04, 2018
Authentication
- A new
revokeRefreshTokens()
method for revoking refresh tokens issued to a user. - The
verifyIdToken()
method now accepts an optionalcheckRevoked
argument, which can be used to check if a given ID token has been revoked.
Version 5.6.0 - December 21, 2017
- A new
admin.instanceId()
API that facilitates deleting instance IDs and associated user data from Firebase projects. - Updated the TypeScript typings for
admin.AppOptions
to reflect the introduction of theprojectId
option. - Removed some unused third party dependencies.
Version 5.5.1 - November 21, 2017
Cloud Firestore
- Upgraded the Cloud Firestore client to the latest available version, which adds input validation to several operations, and retry logic to handle network errors.
Realtime Database
- Fixed an issue in the TypeScript typings of the Realtime Database API.
Version 5.5.0 - November 10, 2017
Realtime Database
-
app.database()
method now optionally accepts a database URL. This feature can be used to access multiple Realtime Database instances from the same app. - Upgraded the Realtime Database client to the latest available version.
Cloud Firestore
- Upgraded the Cloud Firestore client to the latest available version.
Version 5.4.3 - October 24, 2017
- Fixed a regression in module loading that prevented using the Admin SDK in environments like AWS Lambda. This regression was introduced in the 5.4.0 release, which added a new dependency to Firestore and gRPC. This fix lazily loads Firestore and gRPC, thus enabling Admin SDK usage in the affected environments as long as no explicit attempts are made to use the Firestore API.
Version 5.4.2 - October 09, 2017
- Upgraded the Cloud Firestore client dependency to 0.8.2, which resolves an issue with saving objects with nested document references.
Version 5.4.1 - October 03, 2017
- Upgraded the Firestore client dependency to 0.8.1, which resolves the installation issues reported in the Yarn environment.
Version 5.4.0 - October 03, 2017
- A new
admin.firestore()
API that facilitates accessing Google Cloud Firestore databases using the@google-cloud/firestore
library. See Set Up Your Node.js App for Cloud Firestore to get started.
Version 5.3.0 - September 27, 2017
- SDK now retries outbound HTTP calls on all low-level I/O errors.
Authentication
- A new
setCustomUserClaims()
method for setting custom claims on user accounts. Custom claims set via this method become available on the ID tokens of the corresponding users when they sign in. To learn how to use this API for controlling access to Firebase resources, see Control Access with Custom Claims and Security Rules. - A new
listUsers()
method for listing all the users in a Firebase project in batches.
Cloud Storage
- Declared a more concrete TypeScript return type (
Bucket
) for thebucket()
method in the Cloud Storage API.
Version 5.2.1 - August 16, 2017
- A bug in the TypeScript type declarations that come bundled with the
SDK (
index.d.ts
) has been fixed.
Version 5.2.0 - August 14, 2017
- A new Cloud Storage API
that facilitates accessing Google Cloud Storage buckets using the
@google-cloud/storage
library.
Authentication
- New type definitions for the arguments of
createUser()
andupdateUser()
methods.
Cloud Messaging
- Redefined the arguments of
sendToDevice()
using intersection instead of overloading.
Version 5.1.0 - July 25, 2017
Authentication
- Added the method
getUserByPhoneNumber()
to theadmin.auth
interface. This method enables retrieving user profile information by a phone number. -
createUser()
andupdateUser()
methods now accept aphoneNumber
property, which can be used to create users with a phone number field and/or update the phone number associated with a user. - Added the
phoneNumber
field toadmin.auth.UserRecord
, which exposes the phone number associated with a user account. - Added the
phoneNumber
field toadmin.auth.UserInfo
, which exposes the phone number associated with a user account by a linked identity provider.
Version 5.0.1 - July 12, 2017
- Improved the error messages thrown in the case of network and RPC errors. These errors now include outgoing HTTP request details that make it easier to localize and debug issues.
Authentication
- Implemented support in the user management API for handling photo URLs with special characters.
Version 5.0.0 - May 17, 2017
Initialization
- The deprecated
serviceAccount
property in theadmin.App.Options
type has been removed in favor of thecredential
property. - Initializing the SDK without setting a credential results in an exception.
- Initializing the SDK with a malformed private key string results in an exception.
Authentication
-
createdAt
andlastSignedInAt
properties inadmin.auth.UserMetadata
have been renamed tocreationTime
andlastSignInTime
. Also these properties now provide UTC formatted strings instead ofDate
values.
Version 4.2.1 - April 12, 2017
- Updated the SDK to periodically refresh the OAuth access token
internally used by
FirebaseApp
. This reduces the number of authentication failures encountered at runtime by SDK components like Realtime Database.
Version 4.2.0 - April 04, 2017
Cloud Messaging
- Added the methods
subscribeToTopic()
andunsubscribeFromTopic()
to theadmin.messaging()
service. The new methods allow subscribing to and unsubscribing from FCM topics via registration tokens.
Version 4.1.4 - March 28, 2017
Authentication
- Cleaned up a number of types to improve the log output, thereby making debugging easier.
Realtime Database
- Fixed an issue which could cause infinite loops when using
push()
with no arguments.
Version 4.1.3 - March 7, 2017
- Fixed incorrect usage of
undefined
- as opposed tovoid
- in several places in the TypeScript typings. - Added missing properties to the TypeScript typings for
DecodedIdToken
. - Fixed issues when using some types with the TypeScript
strictNullChecks
option enabled. - Removed incorrect
admin.Promise
type from the TypeScript typings in favor of the Node.js built-inPromise
type, which the SDK actually uses. - Added error codes to all app-level errors. All errors in the SDK
now properly implement the
FirebaseError
interface. - Improved error handling when initializing the SDK with a credential that cannot generate valid access tokens.
- Added new
admin.database.EventType
to the TypeScript typings.
Realtime Database
- Improved how the Realtime Database reports errors when provided with various types of invalid credentials.
Version 4.1.2 - March 2, 2017
Authentication
- Improved input validation and error messages for all user management methods.
-
verifyIdToken()
now works with non-cert credentials, assuming theGCLOUD_PROJECT
environment variable is set to your project ID, which is the case when running on Google infrastructure such as Google App Engine and Google Compute Engine.
Realtime Database
- Added
toJSON()
methods to theDataSnapshot
andQuery
objects to make them properly JSON-serializable.
Cloud Messaging
- Improved response parsing when
sendToDevice()
andsendToDeviceGroup()
are provided with unexpected inputs.
Version 4.1.1 - February 14, 2017
- Added in missing TypeScript typings for the
FirebaseError.toJSON()
method.
Authentication
- Fixed issue with
createUser()
which sometimes caused multiple users to share the same email.
Version 4.1.0 - February 2, 2017
- Added in missing TypeScript typings for the
toJSON()
method off of several objects.
Cloud Messaging
- A new
admin.messaging()
service allows you to send messages through Firebase Cloud Messaging. The new service includes thesendToDevice()
,sendToDeviceGroup()
,sendToTopic()
, andsendToCondition()
methods.
Version 4.0.6 - January 24, 2017
Initialization
- Fixed an issue which caused importing the library via the ES2015
import syntax (
import * as admin from "firebase-admin"
) to not work properly.
Version 4.0.5 - January 17, 2017
- TypeScript support has been greatly improved. Typings for the Realtime Database are now available and all other known issues with incorrect or incomplete type information have been resolved.
Initialization
- Fixed an issue which caused the SDK to appear to hang when provided with a credential that generated invalid access tokens. The most common cause of this was using a credential whose access had been revoked. Now, an error will be logged to the console in this scenario.
Authentication
- The error message for an
auth/internal-error
error now includes the raw server response to more easily debug and track down unhandled errors. - Fixed an issue that caused an
auth/internal-error
error to be thrown when callinggetUser()
orgetUserByEmail()
for a user without a creation date. - Fixed an issue which caused an
auth/internal-error
error to be thrown when callingcreateUser()
with an email that corresponds to an existing user. - Fixed an issue which caused an
auth/internal-error
error to be thrown when calling Authentication methods with a credential with insufficient permission. Now, anauth/insufficient-permission
error will be thrown instead.
Version 4.0.4 - December 6, 2016
Authentication
- Fixed an issue that caused several Authentication methods to throw an error when provided with inputs containing Unicode characters.
Version 4.0.3 - November 21, 2016
Initialization
- Fixed an issue that caused a
null
value for thedatabaseAuthVariableOverride
property to be ignored when passed as part of the first argument toinitializeApp()
, which caused the app to still have full admin access. Now, passing this value has the expected behavior: the app has unauthenticated access to the Realtime Database, and behaves as if no user is logged into the app.
Authentication
- Fixed an issue that caused an
auth/invalid-uid
error to be thrown for validuid
values passed to several Authentication methods.
Version 4.0.2 - November 15, 2016
- Improved error messages throughout the Admin Node.js SDK.
- Upgraded dependencies so that the Admin Node.js SDK no longer
throws warnings for using deprecated
Buffer
APIs in Node.js7.x.x
.
Version 4.0.1 - November 9, 2016
- Fixed issue which caused the
4.0.0
release to not include theREADME.md
andnpm-shrinkwrap.json
files.
Version 4.0.0 - November 7, 2016
- The Admin Node.js SDK (available on npm as
firebase-admin
) is a new SDK which replaces and expands the admin capabilities of the standardfirebase
npm module. See Add the Firebase Admin SDK to your Server to get started. - This version does not include the
README.md
andnpm-shrinkwrap.json
files. This was fixed in version4.0.1
.
Initialization
- The
serviceAccount
property of the options passed as the first argument toinitializeApp()
has been deprecated in favor of a newcredential
property. See Initialize the SDK for more details. - The new
admin.credential.cert()
method allows you to authenticate the SDK with a service account key file. - The new
admin.credential.refreshToken()
method allows you to authenticate the SDK with a Google OAuth2 refresh token. - The new
admin.credential.applicationDefault()
method allows you to authenticate the SDK with Google Application Default Credentials.
Authentication
- A new Admin API for managing your Firebase Authentication users is now
available. This API lets you manage your users without using their existing
credentials, and without worrying about client-side rate limiting. The new
methods included in this API are
getUser()
,getUserByEmail()
,createUser()
,updateUser()
, anddeleteUser()
. See Manage Users for more details. - The
createCustomToken()
method is now asynchronous, returning aPromise<string>
instead of astring
.