NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #926 most downloaded on PyPI
Firebase Admin Python SDK
Last release 11 days ago
23 Sep 2026
Release timing varies
gaps range from 2 weeks to 8 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
64 releases · first in 2017
feat(fcm): Migrate topic management to FCM v1 API
Migrated the subscribe_to_topic() and unsubscribe_from_topic() functions in the messaging module from the legacy Instance ID API to the Cloud Messaging v1 topic subscription API.
Added the subscribe_to_topic_legacy() and unsubscribe_from_topic_legacy() functions, which continue to call the legacy Instance ID API. These functions are deprecated and will be removed in a future release.
One column per quarter.
feat(ml): deprecate Machine Learning APIs
feat(fcm): Enable fid and deprecate token for Send API
fid and deprecate token for Send API (#951)fid and deprecate token for Send API (#951)Deprecated the token parameter in Message class and the tokens parameter in MulticastMessage class. Use the new fid and fids parameters instead.
Added support for sending messages to Firebase installation IDs (FIDs) using the new fid parameter in Message class and fids parameter in MulticastMessage class.
Updated the send_each_for_multicast() and send_each_for_multicast_async() functions to support both token and fid target types.
feat(fpnv): Add support for Firebase Phone Number Verification
feat(fcm): Add support for bandwidth constrained and restricted satellite APIs
Added support for bandwidth_constrained_ok and restricted_satellite_ok fields in FCM AndroidConfig .
Fixed an issue where debug error logs were created when making calls to send_each_async and send_each_for_multicast_async . Thanks Plonq for the contribution .
feat(functions): Enable Cloud Task Queue Emulator support
main (#926)asyncio_default_fixture_loop_scope config (#912)AGENTS.md file to instruct AI agents how to interact with this repository (#906)Added Cloud Task emulator support when using the CLOUD_TASKS_EMULATOR_HOST environment variable.
Fixed an issue during cold starts where credentials were not loaded before enqueuing the first task.
feat(auth): Update ActionCodeSettings to support link_domain and deprecate dynamic_link_domain
Deprecated support for Python 3.9. Use Python 3.10 or higher when deploying the Admin SDK
send_all() and send_multicast() FCM APIs (#890)google-api-python-client greatly reducing the SDK's bundle size. (#890)datetime.utcnow() and fix flaky unit test (#896)Dropped support for Python 3.7 and 3.8.
Deprecated support for Python 3.9. Use Python 3.10 or higher when deploying the Admin SDK.
Removed the dependency on google-api-python-client greatly reducing the SDK's bundle size.
Upgraded google-cloud-firestore dependency version to to 2.21.0+.
Upgraded google-cloud-storage dependency version to 3.1.1+.
Upgraded google-api-core dependency version to 2.25.1+.
feat(fcm): Add live_activity_token to APNSConfig
Added support for live_activity_token field in FCM APNSConfig .
Added send_each_async() and send_each_for_multicast_async() APIs with async and HTTP/2 support.
Optimized success count calculation in BatchResponse . Thanks mingi3314 for the contribution .
Python 3.8 has EoL"ed. Update README to deprecate Python 3.8 support
chore: Skip integration test for deprecated FCM API and bump pypy CI to 3.9
Reference.listen() (#851)feat(firestore): Upgrade google-cloud-firestore to support Firestore Multi Database
google-cloud-firestore to support Firestore Multi Database (#827)google.auth typed credentials in initialize_app() (#821)X-Goog-Api-Client metric header to requests (#826)actions/upload-artifact (#812)requests.Response in FirebaseError. (#800)Upgraded the google-cloud-firestore dependency to v2.19.0 .
Added support for multiple Cloud Firestore named databases.
[chore] Rename pytest teardown methods from deprecated teardown to teardown_method
TooManyAttemptsTryLaterError and ResetPasswordExceedLimitError (#777)teardown to teardown_method (#768)actions/setup-python to v5 (#765)Added new exceptions to handle rate limiting auth errors. Thanks skion for the contribution .
Exported rate limiting auth errors types TooManyAttemptsTryLaterError and ResetPasswordExceedLimitError .
feat(fcm): Enabled the direct_boot_ok parameter for FCM Android Config.
direct_boot_ok parameter for FCM Android Config. (#734)send_each and send_each_for_multicast (#749)GITHUB_OUTPUT and bump actions/checkout to v4. (#752)Exported send_each and send_each_for_multicast APIs from the Cloud Messaging module. Thanks MarcoTomasRodriguez for the contribution .
Enabled the direct_boot_ok parameter for FCM Android config.
Deprecated support for Python 3.7
PyJWKClientError to raised errors documentation and handle possible uncaught errors. (#733)github.ref value in release.yml (#730)Correctly catch DefaultCredentialsError when looking up project_id .
Added optional clock_skew_seconds parameter for token generation in the verify_id_token() and verify_session_cookie() APIs. Thanks stillmatic for the contribution .
feat(fcm): Add send_each and send_each_for_multicast for FCM batch send
send_each and send_each_for_multicast for FCM batch send (#706)v2 (#691)Added send_each() and send_each_for_multicast() APIs.
send_all() and send_multicast() APIs are now deprecated. Use send_each() and send_each_for_multicast() APIs instead.
change(ml): Deprecate AutoML model support
fix(fac): Include pyjwt in distribution artifacts
change: Drop Python 3.6 support
change: Deprecated support for Python 3.6
feat(firestore): Async Firestore
feat(auth): enables OIDC auth code flow
bucket function (#591)feat(auth): ability to delete provider in auth
Allows google-api-core[grpc] versions 2.X.X
fix(auth): check if user disabled on check_revoked
fix(auth): adds missing EMAIL_NOT_FOUND error code
change: Drop Python 3.5 support
Dropped support for Python 3.5. Developers should use Python 3.6 or higher when deploying the Admin SDK.
Upgraded google-cloud-firestore dependency version to to 2.1.0.
Upgraded google-cloud-storage dependency version to 1.37.1.
Upgraded google-api-core dependency version to 1.22.1.
The SDK now accepts path-like objects in credential factory functions.
fix(auth): Make auth client respect app options httpTimeout
Remove use of method_whitelist when possible
fix(rtdb): Support parsing non-US RTDB instance URLs
change: Deprecated support for Python 3.5
feat(ml): Adding Firebase ML support for AutoML models
feat(auth): Add bulk get/delete methods
feat(auth): Adding multi-tenancy and IdP management APIs
Added a new tenant_mgt module that provides APIs for creating, updating, retrieving, and deleting authentication tenants.
Added a new tenant_mgt.auth_for_tenant() function that returns a client object scoped to a specific tenant for performing tenant-aware user management operations.
Added the auth.OIDCProviderConfig type and related functions to create, retrieve, update and delete OIDC auth provider configurations.
Added the auth.SAMLProviderConfig type and related functions to create, retrieve, update and delete SAML auth provider configurations.
feat(ml): Adding Firebase ML management APIs
fix(rtdb): Fixed a bug in the Reference.listen() API
chore: Removing Python 3.4 support
Python 2 and 3.4 are no longer supported. Developers must use Python 3.5 or higher when using the Python Admin SDK .
Upgraded the cachecontrol dependency to the latest available.
The Admin SDK now sets a default timeout of 120 seconds on all outgoing HTTP requests.
The AndroidNotification class now correctly formats the event_time field sent to the Firebase Cloud Messaging service.
Fixed an incorrect error message logged by the messaging module when calling the batch send APIs.
[Fixed] Boolean parameters in AndroidNotification are now correctly encoded.
AndroidNotification are now correctly encoded.[Feature] Added a series of new parameters to the AndroidNotification class that allow further customization of notifications that target Android devi
AndroidNotification class
that allow further customization of notifications that target Android devices.send_all() and send_multicast() now support
sending up to 500 messages in a single call.Added a series of new parameters to the AndroidNotification class that allow further customization of notifications that target Android devices.
Batch messaging APIs send_all() and send_multicast() now support sending up to 500 messages in a single call.
[Fixed] User management APIs now correctly raise auth.EmailAlreadyExistsError when an already in-use email address is specified for a user.
auth.EmailAlreadyExistsError when an already in-use email address is specified for a user.auth.InsufficientPermissionError type to represent operations that fail due to the credential lacking a required permission.Message class now implements the __str__() contract which can be used to obtain a string representation of a Message instance.Added auth.InsufficientPermissionError type to represent operations that fail due to the credential lacking a required permission.
User management APIs now correctly raise auth.EmailAlreadyExistsError when an already in-use email address is specified for a user.
Note: This is a major release with breaking changes. Refer to the [migration guide](https://firebase.google.com/docs/admin/migrate-python-v3) for deta…
Note: This is a major release with breaking changes. Refer to the migration guide for details on how to port your code to the new API.
auth.AuthError, db.ApiCallError, messaging.ApiCallError, instance_id.ApiCallError and project_management.ApiCallError.exceptions module that defines base exception types for the entire SDK. Public APIs now raise exceptions defined in the new exceptions module (or subtypes of them). This facilitates implementing fine-grained error handling logic for a wide range of scenarios that was not supported before. See the migration guide for instructions on how to port your existing error handling code.google-cloud-firestore dependency version to to 1.14.0.google-cloud-storage dependency version to 1.18.0.IosApp, IosAppMetadata and ShaCertificate types in the project_management module have been renamed to IOSApp, IOSAppMetadata and SHACertificate respectively.update_user() API by setting properties to None. Setting properties to None leaves those properties unchanged. They must be explicitly set to auth.DELETE_ATTRIBUTE to delete them.WebpushFcmOptions type has been removed. Developers must use the PEP8 compliant type name WebpushFCMOptions instead.[Fixed] The WebpushFcmOptions type is now deprecated. Developers should use the PEP8 compliant type name WebpushFCMOptions instead.
messaging.ApsAlert. Thanks viktorasl for the contribution.WebpushFcmOptions type is now deprecated. Developers should use the PEP8 compliant type name WebpushFCMOptions instead.FIREBASE_DATABASE_EMULATOR_HOST environment variable to specify the emulator endpoint in host:port format.The WebpushFcmOptions type is now deprecated. Developers should use the PEP8 compliant type name WebpushFCMOptions instead.
Added support for specifying the Analytics label for notifications. Thanks willawang8908 for the contribution .
Added support for arbitrary key-value pairs in messaging.ApsAlert . Thanks viktorasl for the contribution .
A new `messaging.send_multicast()` API for sending a message to a list of device registration tokens. Thanks ZachOrr for the contribution.
messaging.send_multicast() API for sending a message to a list of device registration tokens. Thanks ZachOrr for the contribution.messaging.send_all() API for sending a list of messages as a single batch.auth.DELETE_ATTRIBUTE constant that can be used with the update_user() API to remove certain attributes from user accounts. This is now the preferred way to delete attributes like display_name, photo_url and custom_claims.Added generate_password_reset_link(), generate_email_verification_link() and generate_sign_in_with_email_link() methods to the auth API.
generate_password_reset_link(), generate_email_verification_link() and generate_sign_in_with_email_link() methods to the auth API.auth user management API to the new Identity Toolkit endpoint.The Admin SDK now automatically retries HTTP requests on all 500 and 503 errors, regardless of the HTTP method.
The Admin SDK no longer bundles the integration module into the release artifact.
Added the email action link generation APIs for creating links for password reset, email verification and email link sign-in. See documentation for more details and code samples. Thanks hardikns for the contribution .
The user management API now uses the new Google Identity Toolkit REST API. Thanks hardikns for the contribution .
Implemented HTTP retries. The SDK now retries HTTP calls on low-level connection and socket read errors, as well as HTTP 500 and 503 errors.
Dropped support for Python 3.3. Developers on Python 3 must use 3.4 or higher. Support for Python 2.7 has not changed.
google-api-core[grpc] in order to resolve some long-standing Firestore installation problems.messaging.Aps class now supports configuring a critical alert sound. A new messaging.CriticalSound class has been introduced for this purpose.messaging.WebpushConfig class now supports configuring additional FCM options for the features supported by the Firebase web SDK. A new messaging.WebpushFcmOptions class has been introduced for this purpose.A new `project_management` API for managing apps in a Firebase project.
project_management API for managing apps in a Firebase project.list_android_apps() and list_ios_apps() methods for listing the existing apps in a project.create_android_app() and create_ios_app() methods for creating new apps in a project.AndroidApp and IosApp APIs for updating individual apps.db.listen() API where it was taking a long time to process large RTDB nodes.messaging.AndroidNotification type now supports specifying a channel_id when sending messages to Android O devices. Thanks chemidy for the contributionUserRecord.tokens_valid_after_time so that it always returns an integer, and never returns None.The `db.Reference` type now provides a listen() API for receiving realtime update events from the Firebase Database. Thanks the-c0d3r and rizasif for
db.Reference type now provides a listen() API for receiving realtime update events from the Firebase Database. Thanks the-c0d3r and rizasif for the contributions.db.reference() method now optionally takes a URL parameter. This can be used to access multiple Firebase Realtime Database instances in the same project more easily.messaging.WebpushNotification type now supports additional parameters.The Admin SDK can now read the Firebase/Google Cloud Platform project ID from both GCLOUD_PROJECT and GOOGLE_CLOUD_PROJECT environment variables.
GCLOUD_PROJECT and GOOGLE_CLOUD_PROJECT environment variables.serviceAccountId app option, which can be used to set just the client email of a service account.[added] A new auth.import_users() API for importing users into Firebase Auth in bulk.
auth.import_users() API for importing users into Firebase Auth in bulk.db.Reference.update() function now accepts dictionaries with None values. This can be used to delete child keys from a reference.A new `create_session_cookie()` method for creating a session cookie from a Firebase ID token.
create_session_cookie() method for creating a session cookie from a Firebase ID token.verify_session_cookie() method for validating a given session cookie string.auth module now caches the public key certificates used to verify ID tokens and session cookies, thus avoiding a network call everytime a credential needs to be verified.mutable_content optional field to the messaging.Aps type. This can be used to set the mutable-content property when sending FCM messages to APNs targets.messaging.Aps type.[changed] Improved error handling in FCM by mapping more server-side errors to client-side error codes. See documentation.
messaging module now supports specifying an HTTP timeout
for all egress requests. Pass the httpTimeout option
to firebase_admin.initialize_app() before invoking any functions in
messaging.Improved error handling in the messaging.send() API. Exceptions raised by this API now contain the correct error codes as defined in the documentation .
The messaging module now supports specifying an HTTP timeout for all egress requests. Pass the httpTimeout option to firebase_admin.initialize_app() before invoking any functions in messaging . Thanks carsongee for the contribution .
A new `firebase_admin.messaging` module for sending messaging messages and managing topic subscriptions.
firebase_admin.messaging
module for sending messaging messages and managing topic subscriptions.send()
function for sending messaging messages.subscribe_to_topic()
function for subscribing a list of device registration tokens to a
messaging topic.unsubscribe_from_topic()
function for unsubscribing a list of device registration tokens from a
messaging topic.verify_id_token()
function now accepts an optional check_revoked parameter. When True, an
additional check is performed to see whether the token has been revoked.revoke_refresh_tokens()
function to invalidate all tokens issued to a user.tokens_valid_after_timestamp property has been added to the
UserRecord
class to indicate the time before which tokens are not valid.The `initialize_app()` method can now be invoked without any arguments. This will initialize an app using Google Application Default Credentials, and
initialize_app() method can now be invoked without any arguments. This will initialize an app using Google Application Default Credentials, and other options loaded from the FIREBASE_CONFIG environment variable.db.Reference.get() method now accepts an optional shallow argument. If set to True this will cause the SDK to execute a shallow read, which does not retrieve the child node values of the current reference.A new `instance_id` API that facilitates deleting instance IDs and associated user data from Firebase projects.
instance_id API that facilitates deleting instance IDs and associated user data from Firebase projects.Added the `list_users()` function to the firebase_admin.auth module. This function enables listing or iterating over all user accounts in a Firebase p
list_users() function to the firebase_admin.auth module. This function enables listing or iterating over all user accounts in a Firebase project.set_custom_user_claims() function to the firebase_admin.auth module. This function enables setting custom claims on a Firebase user. The custom claims can be accessed via that user's ID token.start_at(), end_at() and equal_to() methods of the db.Query class so they can accept empty string arguments.A new `Firestore` API that enables access to Cloud Firestore databases.
Firestore API that enables access to Cloud Firestore databases.The `db.Reference` class now has a get_if_changed() method, which retrieves a database value only if the value has changed since last read.
db.Reference class now has a get_if_changed() method, which retrieves a database value only if the value has changed since last read.initialize_app() function can now contain an httpTimeout option, which sets the timeout (in seconds) for outbound HTTP connections started by the SDK.You can now get the ETag value of a database reference by passing etag=True to the get() method of a `db.Reference` object.
etag=True to the get() method of a db.Reference object.db.Reference class now has a set_if_unchanged() method, which you can use to write to a database location only when the location has the ETag value you specify.transaction() method that prevented you from updating scalar values in a transaction.A new Cloud Storage API that facilitates accessing Google Cloud Storage buckets using the `google-cloud-storage` library.
google-cloud-storage library.get_user(), get_user_by_email(), get_user_by_phone_number(), create_user(), update_user() and delete_dser() methods to the firebase_admin.authdb.Reference class now exposes a transaction() method, which can be used to execute atomic updates on database references.Your coding agent can read these notes before it upgrades. Set up the MCP server →