22 KiB
22 KiB
Unreleased
v6.4.0
- [added]
messaging.Apstype now supports configuring a critical sound. A newmessaging.CriticalSoundtype has been introduced for this purpose. - [added]
messaging.AndroidNotificationtype now supportschannel_id. - [added]
AppOptionsnow accepts an optionalhttp.Agentobject. Thehttp.Agentspecified 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. - [added]
admin.credential.cert(),admin.credential.applicationDefault(), andadmin.credential.refreshToken()methods now accept anhttp.Agentas an optional argument. If specified, thehttp.Agentwill be used when calling Google backend servers to fetch OAuth2 access tokens. - [added]
messaging.AndroidNotificationtype now supports channel_id.
v6.3.0
- [added] A new
ProjectManagementservice, which includes the ability to create, list, and get details about Android and iOS apps associated with your Firebase Project. - [added]
messaging.ApsAlerttype now supports subtitle in its payload.
v6.2.0
- [added] 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(). - [changed] Upgraded Cloud Firestore client to v0.19.0.
- [added] Exposed the
Transactiontype from theadmin.firestorenamespace. - [fixed] Fixing error handling in FCM. The SDK now checks the key
type.googleapis.com/google.firebase.fcm.v1.FcmErrorto set error code.
v6.1.0
- [changed] Upgraded Cloud Firestore client to v0.18.0.
- [added] Exposed the
CollectionReference,WriteBatch,WriteResultandQueryDocumentSnapshottypes from theadmin.firestorenamespace.
v6.0.0
- [changed] Upgraded Cloud Firestore client to v0.16.0.
- [changed] Firestore and Storage client libraries are now defined as optional dependencies.
- [changed] Dropped support for Node.js 4.
v5.13.1
- [changed] Upgraded Cloud Firestore client to v0.15.4.
- [changed] Exposed the Firestore
Timestamptype from theadmin.firestorenamespace.
v5.13.0
- [changed] Admin SDK can now create custom tokens without being initialized with service account credentials. When a service account private key is not available, the SDK uses the remote IAM service to sign JWTs in the cloud.
- [changed] Updated the typings of the
admin.database.Query.once()method to return a more specific type. - [changed] Admin SDK can now read the Firebase/GCP project ID from both
GCLOUD_PROJECTandGOOGLE_CLOUD_PROJECTenvironment variables. - [changed] Updated the
WebpushNotificationtypings to match the current API. - [changed] Upgraded Cloud Firestore client to v0.15.2.
v5.12.1
- [changed] 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.
- [changed] Upgraded Cloud Firestore client to v0.14.0.
v5.12.0
- [feature] Added the session cookie management APIs for creating and verifying
session cookies, via
auth.createSessionCookie()andauth.verifySessionCookie(). - [added] Added the
mutableContentoptional field to theApstype of the FCM API. - [added] Added the support for specifying arbitrary custom key-value
fields in the
Apstype.
v5.11.0
- [changed] Added the
auth.importUsers()method for importing users to Firebase Auth in bulk.
v5.10.0
- [changed] Upgraded Realtime Database client to v0.2.0. With this upgrade
developers can call the
admin.database().ref()method with anotherReferenceinstance as the argument. - [changed] Upgraded Cloud Firestore client to v0.13.0.
v5.9.1
- [changed] The
admin.initializeApp()method can now be invoked without an explicitcredentialoption. In that case the SDK will get initialized with Google application default credentials. - [changed] Upgraded Realtime Database client to v0.1.11.
- [changed] Modified the Realtime Database client integration to report the correct user agent header.
- [changed] Upgraded Cloud Firestire client to v0.12.0.
- [changed] Improved error handling in FCM by mapping more server-side errors to client-side error codes.
v5.9.0
- [added] Added the
messaging.send()method and the newMessagetype for sending Cloud Messaging notifications via the new FCM REST endpoint.
v5.8.2
- [changed] Exposed
admin.firestore.DocumentReferenceandadmin.firestore.DocumentSnapshottypes from the Admin SDK typings. - [changed] Upgraded Firestore dependency version to 0.11.2.
v5.8.1
- [changed] Upgraded Firestore dependency version from 0.10.0 to 0.11.1. This includes several bug fixes in Cloud Firestore.
v5.8.0
Initialization
- [added] The
admin.initializeApp()method can now be invoked without any arguments. This initializes an app using Google Application Default Credentials, and otherAppOptionsloaded from theFIREBASE_CONFIGenvironment variable.
Authentication
- [changed] Upgraded the
jsonwebtokenlibrary to 8.1.0.
v5.7.0
Authentication
- [added] A new
revokeRefreshTokens()method for revoking refresh tokens issued to a user. - [added] The
verifyIdToken()method now accepts an optionalcheckRevokedargument, which can be used to check if a given ID token has been revoked.
v5.6.0
- [added] A new
admin.instanceId()API that facilitates deleting instance IDs and associated user data from Firebase projects. - [changed] Updated the TypeScript typings for
admin.AppOptionsto reflect the introduction of theprojectIdoption. - [changed] Removed some unused third party dependencies.
v5.5.1
Cloud Firestore
- [changed] 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
- [changed] Fixed an issue in the TypeScript typings of the Realtime Database API.
v5.5.0
Realtime Database
- [added]
app.database()method now optionally accepts a database URL. This feature can be used to access multiple Realtime Database instances from the same app. - [changed] Upgraded the Realtime Database client to the latest available version.
Cloud Firestore
- [changed] Upgraded the Cloud Firestore client to the latest available version.
v5.4.3
- [changed] 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.
v5.4.2
- [changed] Upgraded the Cloud Firestore client dependency to 0.8.2, which resolves an issue with saving objects with nested document references.
v5.4.1
- [changed] Upgraded the Firestore client dependency to 0.8.1, which resolves the installation issues reported in the Yarn environment.
v5.4.0
- [added] A new
admin.firestore()API that facilitates accessing Google Cloud Firestore databases using the@google-cloud/firestorelibrary. See Set Up Your Node.js App for Cloud Firestore to get started.
v5.3.0
- [changed] SDK now retries outbound HTTP calls on all low-level I/O errors.
Authentication
- [added] 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. - [added] A new
listUsers()method for listing all the users in a Firebase project in batches.
Storage
- [changed] Declared a more concrete TypeScript return type (
Bucket) for thebucket()method in the Storage API.
v5.2.1
- [changed] A bug in the TypeScript type declarations that come bundled with the
SDK (
index.d.ts) has been fixed.
v5.2.0
- [added] A new Cloud Storage API
that facilitates accessing Google Cloud Storage buckets using the
@google-cloud/storagelibrary.
Authentication
- [changed] New type definitions for the arguments of
createUser()andupdateUser()methods.
Cloud Messaging
- [changed] Redefined the arguments of
sendToDevice()using intersection instead of overloading.
v5.1.0
Authentication
- [added] Added the method
getUserByPhoneNumber()to theadmin.authinterface. This method enables retrieving user profile information by a phone number. - [added]
createUser()andupdateUser()methods now accept aphoneNumberproperty, which can be used to create users with a phone number field and/or update the phone number associated with a user. - [added] Added the
phoneNumberfield toadmin.auth.UserRecord, which exposes the phone number associated with a user account. - [added] Added the
phoneNumberfield toadmin.auth.UserInfo, which exposes the phone number associated with a user account by a linked identity provider.
v5.0.1
- [changed] 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
- [changed] Implemented support in the user management API for handling photo URLs with special characters.
v5.0.0
Initialization
- [changed] The deprecated
serviceAccountproperty in theadmin.App.Optionstype has been removed in favor of thecredentialproperty. - [changed] Initializing the SDK without setting a credential results in an exception.
- [changed] Initializing the SDK with a malformed private key string results in an exception.
Authentication
- [changed]
createdAtandlastSignedInAtproperties inadmin.auth.UserMetadatahave been renamed tocreationTimeandlastSignInTime. Also these properties now provide UTC formatted strings instead ofDatevalues.
v4.2.1
- [changed] 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.
v4.2.0
Cloud Messaging
- [added] Added the methods
subscribeToTopic()andunsubscribeFromTopic()to theadmin.messaging()service. The new methods allow subscribing to and unsubscribing from {{messaging}} topics via registration tokens.
v4.1.4
Authentication
- [changed] Cleaned up a number of types to improve the log output, thereby making debugging easier.
Realtime Database
- [changed] Fixed an issue which could cause infinite loops when using
push()with no arguments.
v4.1.3
- [changed] Fixed incorrect usage of
undefined- as opposed tovoid- in several places in the TypeScript typings. - [changed] Added missing properties to the TypeScript typings for
DecodedIdToken. - [changed] Fixed issues when using some types with the TypeScript
strictNullChecksoption enabled. - [changed] Removed incorrect
admin.Promisetype from the TypeScript typings in favor of the Node.js built-inPromisetype, which the SDK actually uses. - [changed] Added error codes to all app-level errors. All errors in the SDK
now properly implement the
FirebaseErrorinterface. - [changed] Improved error handling when initializing the SDK with a credential that cannot generate valid access tokens.
- [added] Added new
admin.database.EventTypeto the TypeScript typings.
Realtime Database
- [changed] Improved how the Realtime Database reports errors when provided with various types of invalid credentials.
v4.1.2
Authentication
- [changed] Improved input validation and error messages for all user management methods.
- [changed]
verifyIdToken()now works with non-cert credentials, assuming theGCLOUD_PROJECTenvironment 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
- [changed] Added
toJSON()methods to theDataSnapshotandQueryobjects to make them properly JSON-serializable.
Cloud Messaging
- [changed] Improved response parsing when
sendToDevice()andsendToDeviceGroup()are provided with unexpected inputs.
v4.1.1
- [changed] Added in missing TypeScript typings for the
FirebaseError.toJSON()method.
Authentication
- [changed] Fixed issue with
createUser()which sometimes caused multiple users to share the same email.
v4.1.0
- [changed] Added in missing TypeScript typings for the
toJSON()method off of several objects.
Cloud Messaging
- [added] A new
admin.messaging()service allows you to send messages through Firebase Cloud Messaging. The new service includes thesendToDevice(),sendToDeviceGroup(),sendToTopic(), andsendToCondition()methods.
v4.0.6
Initialization
- [changed] Fixed an issue which caused importing the library via the ES2015
import syntax (
import * as admin from "firebase-admin") to not work properly.
v4.0.5
- [changed] 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
- [changed] 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
- [added] The error message for an
auth/internal-errorerror now includes the raw server response to more easily debug and track down unhandled errors. - [changed] Fixed an issue that caused an
auth/internal-errorerror to be thrown when callinggetUser()orgetUserByEmail()for a user without a creation date. - [changed] Fixed an issue which caused an
auth/internal-errorerror to be thrown when callingcreateUser()with an email that corresponds to an existing user. - [changed] Fixed an issue which caused an
auth/internal-errorerror to be thrown when calling Authentication methods with a credential with insufficient permission. Now, anauth/insufficient-permissionerror will be thrown instead.
v4.0.4
Authentication
- [changed] Fixed an issue that caused several Authentication methods to throw an error when provided with inputs containing Unicode characters.
v4.0.3
Initialization
- [changed] Fixed an issue that caused a
nullvalue for thedatabaseAuthVariableOverrideproperty 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
- [changed] Fixed an issue that caused an
auth/invalid-uiderror to be thrown for validuidvalues passed to several Authentication methods.
v4.0.2
- [added] Improved error messages throughout the Admin Node.js SDK.
- [changed] Upgraded dependencies so that the Admin Node.js SDK no longer
throws warnings for using deprecated
BufferAPIs in Node.js7.x.x.
v4.0.1
- [changed] Fixed issue which caused the 4.0.0 release to not
include the
README.mdandnpm-shrinkwrap.jsonfiles.
v4.0.0
- [added] The Admin Node.js SDK (available on npm as
firebase-admin) is a new SDK which replaces and expands the admin capabilities of the standardfirebasenpm module. See Add the Firebase Admin SDK to your Server to get started. - [issue] This version does not include the
README.mdandnpm-shrinkwrap.jsonfiles. This was fixed in version 4.0.1.
Initialization
- [deprecated] The
serviceAccountproperty of the options passed as the first argument toinitializeApp()has been deprecated in favor of a newcredentialproperty. See Initialize the SDK for more details. - [added] The new
admin.credential.cert()method allows you to authenticate the SDK with a service account key file. - [added] The new
admin.credential.refreshToken()method allows you to authenticate the SDK with a Google OAuth2 refresh token. - [added] The new
admin.credential.applicationDefault()method allows you to authenticate the SDK with Google Application Default Credentials.
Authentication
- [added] 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. - [changed] The
createCustomToken()method is now asynchronous, returning aPromise<string>instead of astring.