firebase_functions.identity_fn module

Cloud functions to handle Eventarc events.

Classes

AdditionalUserInfo

class firebase_functions.identity_fn.AdditionalUserInfo(provider_id: str, profile: dict[str, Any] | None, username: str | None, is_new_user: bool, recaptcha_score: float | None)

Bases: object

The additional user info component of the auth event context.

is_new_user: bool

A boolean indicating if the user is new or not.

profile: dict[str, Any] | None

The user's profile data as a dictionary.

provider_id: str

The provider identifier.

recaptcha_score: float | None

The user's reCAPTCHA score, if available.

username: str | None

The user's username, if available.

AuthBlockingEvent

class firebase_functions.identity_fn.AuthBlockingEvent(data: AuthUserRecord, locale: str | None, event_id: str, ip_address: str, user_agent: str, additional_user_info: AdditionalUserInfo, credential: Credential | None, timestamp: datetime)

Bases: object

Defines an auth event for identitytoolkit v2 auth blocking events.

additional_user_info: AdditionalUserInfo

An object containing information about the user.

credential: Credential | None

An object containing information about the user's credential.

data: AuthUserRecord

The UserRecord passed to auth blocking functions from the identity platform.

event_id: str

The event's unique identifier. Example: 'rWsyPtolplG2TBFoOkkgyg'

ip_address: str

The IP address of the device the end user is registering or signing in from. Example: '114.14.200.1'

locale: str | None

The application locale. You can set the locale using the client SDK, or by passing the locale header in the REST API. Example: 'fr' or 'sv-SE'

timestamp: datetime

The time the event was triggered.

user_agent: str

The user agent triggering the blocking function. Example: 'Mozilla/5.0 (X11; Linux x86_64)'

AuthMultiFactorInfo

class firebase_functions.identity_fn.AuthMultiFactorInfo(uid: str, display_name: str | None, factor_id: str, enrollment_time: datetime | None, phone_number: str | None)

Bases: object

Interface representing the common properties of a user-enrolled second factor.

display_name: str | None

The optional display name of the enrolled second factor.

enrollment_time: datetime | None

The optional date the second factor was enrolled.

factor_id: str

The type identifier of the second factor. For SMS second factors, this is phone.

phone_number: str | None

The phone number associated with a phone second factor.

uid: str

The ID of the enrolled second factor. This ID is unique to the user.

AuthMultiFactorSettings

class firebase_functions.identity_fn.AuthMultiFactorSettings(enrolled_factors: list[AuthMultiFactorInfo])

Bases: object

The multi-factor related properties for the current user, if available.

enrolled_factors: list[AuthMultiFactorInfo]

List of second factors enrolled with the current user.

AuthUserInfo

class firebase_functions.identity_fn.AuthUserInfo(uid: str, provider_id: str, display_name: str | None = None, email: str | None = None, photo_url: str | None = None, phone_number: str | None = None)

Bases: object

User info that is part of the AuthUserRecord.

display_name: str | None = None

The display name for the linked provider.

email: str | None = None

The email for the linked provider.

phone_number: str | None = None

The phone number for the linked provider.

photo_url: str | None = None

The photo URL for the linked provider.

provider_id: str

The linked provider ID (such as "google.com" for the Google provider).

uid: str

The user identifier for the linked provider.

AuthUserMetadata

class firebase_functions.identity_fn.AuthUserMetadata(creation_time: datetime, last_sign_in_time: datetime | None)

Bases: object

Additional metadata about the user.

creation_time: datetime

The date the user was created.

last_sign_in_time: datetime | None

The date the user last signed in.

AuthUserRecord

class firebase_functions.identity_fn.AuthUserRecord(uid: str, email: str | None, email_verified: bool | None, display_name: str | None, photo_url: str | None, phone_number: str | None, disabled: bool, metadata: AuthUserMetadata, provider_data: list[AuthUserInfo], password_hash: str | None, password_salt: str | None, custom_claims: dict[str, Any] | None, tenant_id: str | None, tokens_valid_after_time: datetime | None, multi_factor: AuthMultiFactorSettings | None)

Bases: object

The UserRecord passed to auth blocking functions from the identity platform.

custom_claims: dict[str, Any] | None

The user's custom claims object if available.

disabled: bool

true for disabled; false for enabled.

Type:

Whether or not the user is disabled

display_name: str | None

The user's display name.

email: str | None

The user's primary email, if set.

email_verified: bool | None

Whether or not the user's primary email is verified.

metadata: AuthUserMetadata

Additional metadata about the user.

multi_factor: AuthMultiFactorSettings | None

The multi-factor related properties for the current user, if available.

password_hash: str | None

The user's hashed password (base64-encoded).

password_salt: str | None

The user's password salt (base64-encoded).

phone_number: str | None

The user's primary phone number, if set.

photo_url: str | None

The user's photo URL.

provider_data: list[AuthUserInfo]

An array of providers (such as Google or Facebook) linked to the user.

tenant_id: str | None

The ID of the tenant the user belongs to, if available.

tokens_valid_after_time: datetime | None

The date the user's tokens are valid after.

uid: str

The user's uid.

BeforeCreateResponse

class firebase_functions.identity_fn.BeforeCreateResponse

Bases: TypedDict

The handler response type for 'before_user_created' blocking events.

custom_claims: dict[str, Any] | None

The user's custom claims object if available.

disabled: bool | None

Whether or not the user is disabled.

display_name: str | None

The user's display name.

email_verified: bool | None

Whether or not the user's primary email is verified.

photo_url: str | None

The user's photo URL.

recaptcha_action_override: Literal['ALLOW', 'BLOCK'] | None

BeforeSignInResponse

class firebase_functions.identity_fn.BeforeSignInResponse

Bases: dict

The handler response type for 'before_user_signed_in' blocking events.

custom_claims: dict[str, Any] | None
disabled: bool | None
display_name: str | None
email_verified: bool | None
photo_url: str | None
recaptcha_action_override: Literal['ALLOW', 'BLOCK'] | None
session_claims: dict[str, Any] | None

The user's session claims object if available.

Credential

class firebase_functions.identity_fn.Credential(claims: dict[str, Any] | None, id_token: str | None, access_token: str | None, refresh_token: str | None, expiration_time: datetime | None, secret: str | None, provider_id: str, sign_in_method: str)

Bases: object

The credential component of the auth event context.

access_token: str | None

The user's access token.

claims: dict[str, Any] | None

The user's claims data as a dictionary.

expiration_time: datetime | None

The expiration time of the user's access token.

id_token: str | None

The user's ID token.

provider_id: str

The provider identifier.

refresh_token: str | None

The user's refresh token.

secret: str | None

The user's secret.

sign_in_method: str

The user's sign-in method.

Functions

before_user_created

firebase_functions.identity_fn.before_user_created(**kwargs) Callable[[Callable[[AuthBlockingEvent], BeforeCreateResponse | None]], Callable[[AuthBlockingEvent], BeforeCreateResponse | None]]

Handles an event that is triggered before a user is created.

Example:

from firebase_functions import identity_fn

@identity_fn.before_user_created()
def example(event: identity_fn.AuthBlockingEvent) -> identity_fn.BeforeCreateResponse | None:
    pass
Parameters:

**kwargs (as firebase_functions.options.BlockingOptions) -- Options.

Return type:

typing.Callable [ [ firebase_functions.identity_fn.AuthBlockingEvent ], firebase_functions.identity_fn.BeforeCreateResponse | None ] A function that takes a AuthBlockingEvent and optionally returns BeforeCreateResponse.

before_user_signed_in

firebase_functions.identity_fn.before_user_signed_in(**kwargs) Callable[[Callable[[AuthBlockingEvent], BeforeSignInResponse | None]], Callable[[AuthBlockingEvent], BeforeSignInResponse | None]]

Handles an event that is triggered before a user is signed in.

Example:

from firebase_functions import identity_fn

@identity_fn.before_user_signed_in()
def example(event: identity_fn.AuthBlockingEvent) -> identity_fn.BeforeSignInResponse | None:
    pass
Parameters:

**kwargs (as firebase_functions.options.BlockingOptions) -- Options.

Return type:

typing.Callable [ [ firebase_functions.identity_fn.AuthBlockingEvent ], firebase_functions.identity_fn.BeforeSignInResponse | None ] A function that takes a AuthBlockingEvent and optionally returns BeforeSignInResponse.

Constants

BeforeUserCreatedCallable

firebase_functions.identity_fn.BeforeUserCreatedCallable

The type of the callable for 'before_user_created' blocking events.

alias of Callable[[AuthBlockingEvent], BeforeCreateResponse | None]

BeforeUserSignedInCallable

firebase_functions.identity_fn.BeforeUserSignedInCallable

The type of the callable for 'before_user_signed_in' blocking events.

alias of Callable[[AuthBlockingEvent], BeforeSignInResponse | None]

RecaptchaActionOptions

firebase_functions.identity_fn.RecaptchaActionOptions

The reCAPTCHA action options.

alias of Literal['ALLOW', 'BLOCK']