Field Paths

Utilities for managing / converting field paths to / from strings.

class google.cloud.firestore_v1.field_path.FieldPath(*parts)

Bases: object

Field Path object for client use.

A field path is a sequence of element keys, separated by periods. Each element key can be either a simple identifier, or a full unicode string.

In the string representation of a field path, non-identifier elements must be quoted using backticks, with internal backticks and backslashes escaped with a backslash.

  • Parameters

    parts – (one or more strings) Indicating path of the key to be used.

_add_(other)

Adds other field path to end of this field path.

static document_id()

A special FieldPath value to refer to the ID of a document. It can be used

in queries to sort or filter by the document ID.

Returns: A special sentinel value to refer to the ID of a document.

eq_or_parent(other)

Check whether other is an ancestor.

  • Returns

    (bool) True IFF other is an ancestor or equal to self, else False.

classmethod from_api_repr(api_repr: str)

Factory: create a FieldPath from the string formatted per the API.

  • Parameters

    • api_repr (str) – a string path, with non-identifier elements quoted

    • characters (It cannot exceed 1500) –

    • empty. (and cannot be) –

  • Returns

    (FieldPath) An instance parsed from api_repr.

  • Raises

    ValueError if the parsing fails

classmethod from_string(path_string: str)

Factory: create a FieldPath from a unicode string representation.

This method splits on the character . and disallows the characters ~*/[]. To create a FieldPath whose components have those characters, call the constructor.

  • Parameters

    • path_string (str) – A unicode string which cannot contain

    • characters (~*/[]) –

    • bytes (cannot exceed 1500) –

    • empty. (and cannot be) –

  • Returns

    (FieldPath) An instance parsed from path_string.

lineage()

Return field paths for all parents.

Returns: Set[FieldPath]

to_api_repr()

Render a quoted string representation of the FieldPath

  • Returns

    (str) Quoted string representation of the path stored within this FieldPath.

google.cloud.firestore_v1.field_path.get_field_path(field_names: Iterable[str])

Create a field path from a list of nested field names.

A field path is a .-delimited concatenation of the field names. It is used to represent a nested field. For example, in the data

data = {
 'aa': {
 'bb': {
 'cc': 10,
 },
 },
}

the field path 'aa.bb.cc' represents that data stored in data['aa']['bb']['cc'].

  • Parameters

    field_names – The list of field names.

  • Returns

    The .-delimited field path.

  • Return type

    str

google.cloud.firestore_v1.field_path.get_nested_value(field_path: str, data: dict)

Get a (potentially nested) value from a dictionary.

If the data is nested, for example:

>>> data
{
 'top1': {
 'middle2': {
 'bottom3': 20,
 'bottom4': 22,
 },
 'middle5': True,
 },
 'top6': b' foo',
}

a field path can be used to access the nested data. For example:

>>> get_nested_value('top1', data)
{
 'middle2': {
 'bottom3': 20,
 'bottom4': 22,
 },
 'middle5': True,
}
>>> get_nested_value('top1.middle2', data)
{
 'bottom3': 20,
 'bottom4': 22,
}
>>> get_nested_value('top1.middle2.bottom3', data)
20

See field_path() for more information on field paths.

  • Parameters

    • field_path (str) – A field path (.-delimited list of field names).

    • data (Dict[str , **Any]) – The (possibly nested) data.

  • Returns

    (A copy of) the value stored for the field_path.

  • Return type

    Any

  • Raises

    KeyError – If the field_path does not match nested data.

google.cloud.firestore_v1.field_path.parse_field_path(api_repr: str)

Parse a field path from into a list of nested field names.

See field_path() for more on field paths.

  • Parameters

    api_repr (str) – The unique Firestore api representation which consists of either simple or UTF-8 field names. It cannot exceed 1500 bytes, and cannot be empty. Simple field names match '^[_a-zA-Z][_a-zA-Z0-9]\*$'. All other field names are escaped by surrounding them with backticks.

  • Returns

    The list of field names in the field path.

  • Return type

    List[str, ...]

google.cloud.firestore_v1.field_path.render_field_path(field_names: Iterable[str])

Create a field path from a list of nested field names.

A field path is a .-delimited concatenation of the field names. It is used to represent a nested field. For example, in the data

data = {
 'aa': {
 'bb': {
 'cc': 10,
 },
 },
}

the field path 'aa.bb.cc' represents that data stored in data['aa']['bb']['cc'].

  • Parameters

    field_names – The list of field names.

  • Returns

    The .-delimited field path.

  • Return type

    str

google.cloud.firestore_v1.field_path.split_field_path(path: str)

Split a field path into valid elements (without dots).

  • Parameters

    path (str) – field path to be lexed.

  • Returns

    tokens

  • Return type

    List(str)

  • Raises

    ValueError – if the path does not match the elements-interspersed- with-dots pattern.

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025年10月30日 UTC.