Skip to content

Upgrading firebase-admin 2 to 3

Breaking2.18.0 → 3.2.1Breaking5Deprecated1New3Changed2Fixed4

BreakingUpgrade verdict

5 breaking changes.

  • Old error classes tied to individual modules are gone; catch the new shared exception types instead.
  • Three class names in the project management module changed capitalization.
  • Passing None to update_user() now leaves a property unchanged instead of deleting it.
  • The old notification options class name is gone; use the PEP8-compliant name.
Top 4 of 6 that need code or config changes

firebase-admin publishes an official migration guide for version 3. It covers more than the release notes do.

Migration guide ↗
Breaking5
Removes old module-level exception types such as auth.AuthError and db.ApiCallError.
auth.AuthErrordb.ApiCallErrormessaging.ApiCallErrorinstance_id.ApiCallErrorproject_management.ApiCallError
Renames project_management types IosApp, IosAppMetadata and ShaCertificate to IOSApp, IOSAppMetadata and SHACertificate.
IosAppIosAppMetadataShaCertificateIOSAppIOSAppMetadataSHACertificateproject_management
update_user() no longer deletes properties set to None; use auth.DELETE_ATTRIBUTE to delete them.
update_user()auth.DELETE_ATTRIBUTE
Removes the deprecated WebpushFcmOptions type; use WebpushFCMOptions instead.
WebpushFcmOptionsWebpushFCMOptions
Adds a new exceptions module with base exception types that public APIs now raise.
exceptions
Deprecated1
Deprecates Python 2.7 support and advises developers to use Python 3.4 or higher.

Generated by DepDelta from published Python source. Not mixed with prose notes.

  • removed: class AuthError(Exception)
  • removed: constructor AuthError(code, message, error=…)
  • added: variable CertificateFetchError
  • added: variable EmailAlreadyExistsError
  • added: variable ExpiredIdTokenError
  • added: variable ExpiredSessionCookieError
  • added: variable InsufficientPermissionError
  • added: variable InvalidDynamicLinkDomainError
  • added: variable InvalidIdTokenError
  • added: variable InvalidSessionCookieError
  • added: variable PhoneNumberAlreadyExistsError
  • added: variable RevokedIdTokenError
  • added: variable RevokedSessionCookieError
  • added: variable TokenSignError
  • added: variable UidAlreadyExistsError
  • added: variable UnexpectedResponseError
  • added: variable UserNotFoundError
  • removed: class ApiCallError(Exception)
  • removed: class TransactionError(Exception)
  • removed: constructor ApiCallError(message, error)
  • removed: constructor TransactionError(message)
  • added: class TransactionAbortedError(exceptions.AbortedError)
  • added: constructor TransactionAbortedError(message)
  • added: class AbortedError(FirebaseError)
  • added: class AlreadyExistsError(FirebaseError)
  • added: class CancelledError(FirebaseError)
  • added: class ConflictError(FirebaseError)
  • added: class DataLossError(FirebaseError)
  • added: class DeadlineExceededError(FirebaseError)
  • added: class FailedPreconditionError(FirebaseError)
  • added: class FirebaseError(Exception)
  • added: class InternalError(FirebaseError)
  • added: class InvalidArgumentError(FirebaseError)
  • added: class NotFoundError(FirebaseError)
  • added: class OutOfRangeError(FirebaseError)
  • added: class PermissionDeniedError(FirebaseError)
  • added: class ResourceExhaustedError(FirebaseError)
  • added: class UnauthenticatedError(FirebaseError)
  • added: class UnavailableError(FirebaseError)
  • added: class UnknownError(FirebaseError)
  • added: constructor AbortedError(message, cause=…, http_response=…)
  • added: constructor AlreadyExistsError(message, cause=…, http_response=…)
  • added: constructor CancelledError(message, cause=…, http_response=…)
  • added: constructor ConflictError(message, cause=…, http_response=…)
  • added: constructor DataLossError(message, cause=…, http_response=…)
  • added: constructor DeadlineExceededError(message, cause=…, http_response=…)
  • added: constructor FailedPreconditionError(message, cause=…, http_response=…)
  • added: constructor FirebaseError(code, message, cause=…, http_response=…)
  • added: constructor InternalError(message, cause=…, http_response=…)
  • added: constructor InvalidArgumentError(message, cause=…, http_response=…)
  • added: constructor NotFoundError(message, cause=…, http_response=…)
  • added: constructor OutOfRangeError(message, cause=…, http_response=…)
  • added: constructor PermissionDeniedError(message, cause=…, http_response=…)
  • added: constructor ResourceExhaustedError(message, cause=…, http_response=…)
  • added: constructor UnauthenticatedError(message, cause=…, http_response=…)
  • added: constructor UnavailableError(message, cause=…, http_response=…)
  • added: constructor UnknownError(message, cause=…, http_response=…)
  • added: property FirebaseError.cause
  • added: property FirebaseError.code
  • added: property FirebaseError.http_response
  • added: variable ABORTED
  • added: variable ALREADY_EXISTS
  • added: variable CANCELLED
  • added: variable CONFLICT
  • added: variable DATA_LOSS
  • added: variable DEADLINE_EXCEEDED
  • added: variable FAILED_PRECONDITION
  • added: variable INTERNAL
  • added: variable INVALID_ARGUMENT
  • added: variable NOT_FOUND
  • added: variable OUT_OF_RANGE
  • added: variable PERMISSION_DENIED
  • added: variable RESOURCE_EXHAUSTED
  • added: variable UNAUTHENTICATED
  • added: variable UNAVAILABLE
  • added: variable UNKNOWN
  • removed: class ApiCallError(Exception)
  • removed: constructor ApiCallError(message, error)
  • removed: class ApiCallError(Exception)
  • removed: constructor ApiCallError(code, message, detail=…)
  • added: variable LightSettings
  • added: variable QuotaExceededError
  • added: variable SenderIdMismatchError
  • added: variable ThirdPartyAuthError
  • added: variable UnregisteredError
  • removed: class ApiCallError(Exception)
  • removed: class IosApp(object)
  • removed: class IosAppMetadata(_AppMetadata)
  • removed: class ShaCertificate(object)
  • removed: constructor ApiCallError(message, error)
  • removed: constructor IosApp(app_id, service)
  • removed: constructor IosAppMetadata(bundle_id, name, app_id, display_name, project_id)
  • removed: constructor ShaCertificate(sha_hash, name=…)
  • removed: field ShaCertificate.SHA_1
  • removed: field ShaCertificate.SHA_256
  • removed: method IosApp.get_config()
  • removed: method IosApp.get_metadata()
  • removed: method IosApp.set_display_name(new_display_name)
  • removed: property IosApp.app_id
  • removed: property IosAppMetadata.bundle_id
  • removed: property ShaCertificate.cert_type
  • removed: property ShaCertificate.name
  • removed: property ShaCertificate.sha_hash
  • added: class IOSApp(object)
  • added: class IOSAppMetadata(_AppMetadata)
  • added: class SHACertificate(object)
  • added: constructor IOSApp(app_id, service)
  • added: constructor IOSAppMetadata(bundle_id, name, app_id, display_name, project_id)
  • added: constructor SHACertificate(sha_hash, name=…)
  • added: field SHACertificate.SHA_1
  • added: field SHACertificate.SHA_256
  • added: method IOSApp.get_config()
  • added: method IOSApp.get_metadata()
  • added: method IOSApp.set_display_name(new_display_name)
  • added: property IOSApp.app_id
  • added: property IOSAppMetadata.bundle_id
  • added: property SHACertificate.cert_type
  • added: property SHACertificate.name
  • added: property SHACertificate.sha_hash