Skip to content

Types Reference

FirestoreValue

FirestoreValue = (
    None
    | bool
    | int
    | float
    | str
    | bytes
    | datetime
    | GeoPoint
    | DocumentReference
    | list[FirestoreValue]
    | dict[str, FirestoreValue]
)

TypeRegistry

Registry of Firestore-compatible types for Field[T] validation and handling.

register

register(
    type_or_predicate: type | Callable[[type], bool],
    *,
    handler: TypeHandler | None = None,
    serialize: Callable[[Any], Any] | None = None,
    deserialize: Callable[[Any], Any] | None = None,
) -> None

Register a type or predicate with an optional handler.

Parameters:

Name Type Description Default
type_or_predicate type | Callable[[type], bool]

A type (exact match) or callable (predicate).

required
handler TypeHandler | None

A TypeHandler instance. Mutually exclusive with kwargs.

None
serialize Callable[[Any], Any] | None

Serialize function. Requires deserialize.

None
deserialize Callable[[Any], Any] | None

Deserialize function.

None

Raises:

Type Description
ValueError

If handler and kwargs are both provided, or serialize without deserialize.

validate

validate(
    field_name: str, hint: Any, class_name: str
) -> None

Validate a type hint is Firestore-compatible.

Parameters:

Name Type Description Default
field_name str

Name of the field being validated.

required
hint Any

The type hint to validate.

required
class_name str

Name of the class for error messages.

required

Raises:

Type Description
TypeError

If the type is not Firestore-compatible.


register_type

register_type(
    type_or_predicate: type | Callable[[type], bool],
    *,
    handler: TypeHandler | None = None,
    serialize: Callable[[Any], Any] | None = None,
    deserialize: Callable[[Any], Any] | None = None,
) -> None

Register a type handler in the global registry.

Parameters:

Name Type Description Default
type_or_predicate type | Callable[[type], bool]

A type (exact match) or callable (predicate).

required
handler TypeHandler | None

A TypeHandler instance. Mutually exclusive with kwargs.

None
serialize Callable[[Any], Any] | None

Serialize function. Requires deserialize.

None
deserialize Callable[[Any], Any] | None

Deserialize function.

None