Package google.firestore.v1

Индекс

Пожарная лавка

Сервис Cloud Firestore.

Cloud Firestore — это быстрая, полностью управляемая, бессерверная, облачная база данных документов NoSQL, которая упрощает хранение, синхронизацию и запрос данных для ваших мобильных, веб-приложений и приложений Интернета вещей в глобальном масштабе. Его клиентские библиотеки обеспечивают синхронизацию в реальном времени и автономную поддержку, а функции безопасности и интеграция с Firebase и Google Cloud Platform ускоряют создание действительно бессерверных приложений.

Пакетное получение документов

rpc BatchGetDocuments( BatchGetDocumentsRequest ) returns ( BatchGetDocumentsResponse )

Получает несколько документов.

Документы, возвращаемые этим методом, не гарантированно возвращаются в том же порядке, в котором они были запрошены.

Области авторизации

Требуется одна из следующих областей OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Для получения дополнительной информации см. Обзор аутентификации .

Пакетная запись

rpc BatchWrite( BatchWriteRequest ) returns ( BatchWriteResponse )

Применяет пакет операций записи.

Метод BatchWrite не применяет операции записи атомарно и может применять их не по порядку. Метод не допускает более одной записи на документ. Каждая запись завершается успешно или неудачно независимо. См. BatchWriteResponse для получения статуса успешной каждой записи.

Если вам требуется атомарный набор операций записи, используйте вместо этого Commit .

Области авторизации

Требуется одна из следующих областей OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Для получения дополнительной информации см. Обзор аутентификации .

Бегинтранзакция

rpc BeginTransaction( BeginTransactionRequest ) returns ( BeginTransactionResponse )

Начинает новую транзакцию.

Области авторизации

Требуется одна из следующих областей OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Для получения дополнительной информации см. Обзор аутентификации .

Совершить

rpc Commit( CommitRequest ) returns ( CommitResponse )

Фиксирует транзакцию, при необходимости обновляя документы.

Области авторизации

Требуется одна из следующих областей OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Для получения дополнительной информации см. Обзор аутентификации .

Создать документ

rpc CreateDocument( CreateDocumentRequest ) returns ( Document )

Создает новый документ.

Области авторизации

Требуется одна из следующих областей OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Для получения дополнительной информации см. Обзор аутентификации .

Удалить документ

rpc DeleteDocument( DeleteDocumentRequest ) returns ( Empty )

Удаляет документ.

Области авторизации

Требуется одна из следующих областей OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Для получения дополнительной информации см. Обзор аутентификации .

Получить документ

rpc GetDocument( GetDocumentRequest ) returns ( Document )

Получает один документ.

Области авторизации

Требуется одна из следующих областей OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Для получения дополнительной информации см. Обзор аутентификации .

ListCollectionIds

rpc ListCollectionIds( ListCollectionIdsRequest ) returns ( ListCollectionIdsResponse )

Перечисляет все идентификаторы коллекций под документом.

Области авторизации

Требуется одна из следующих областей OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Для получения дополнительной информации см. Обзор аутентификации .

Список документов

rpc ListDocuments( ListDocumentsRequest ) returns ( ListDocumentsResponse )

Перечисляет документы.

Области авторизации

Требуется одна из следующих областей OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Для получения дополнительной информации см. Обзор аутентификации .

Слушать

rpc Listen( ListenRequest ) returns ( ListenResponse )

Прислушивается к изменениям. Этот метод доступен только через gRPC или WebChannel (не REST).

Области авторизации

Требуется одна из следующих областей OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Для получения дополнительной информации см. Обзор аутентификации .

Запрос раздела

rpc PartitionQuery( PartitionQueryRequest ) returns ( PartitionQueryResponse )

Разделяет запрос, возвращая курсоры разделов, которые можно использовать для параллельного выполнения запроса. Возвращенные курсоры разделов представляют собой точки разделения, которые RunQuery может использовать в качестве начальной и конечной точек для результатов запроса.

Области авторизации

Требуется одна из следующих областей OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Для получения дополнительной информации см. Обзор аутентификации .

Откат

rpc Rollback( RollbackRequest ) returns ( Empty )

Откатывает транзакцию.

Области авторизации

Требуется одна из следующих областей OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Для получения дополнительной информации см. Обзор аутентификации .

Запустить агрегационный запрос

rpc RunAggregationQuery( RunAggregationQueryRequest ) returns ( RunAggregationQueryResponse )

Запускает запрос агрегирования.

Вместо того, чтобы создавать результаты Document , такие как Firestore.RunQuery , этот API позволяет запускать агрегацию для создания серии AggregationResult на стороне сервера.

Пример высокого уровня:

-- Return the number of documents in table given a filter.
SELECT COUNT(*) FROM ( SELECT * FROM k where a = true );
Области авторизации

Требуется одна из следующих областей OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Для получения дополнительной информации см. Обзор аутентификации .

Выполнить запрос

rpc RunQuery( RunQueryRequest ) returns ( RunQueryResponse )

Выполняет запрос.

Области авторизации

Требуется одна из следующих областей OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Для получения дополнительной информации см. Обзор аутентификации .

Обновить документ

rpc UpdateDocument( UpdateDocumentRequest ) returns ( Document )

Обновляет или вставляет документ.

Области авторизации

Требуется одна из следующих областей OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Для получения дополнительной информации см. Обзор аутентификации .

Писать

rpc Write( WriteRequest ) returns ( WriteResponse )

Потоковая передача пакетов обновлений и удалений документов по порядку. Этот метод доступен только через gRPC или WebChannel (не REST).

Области авторизации

Требуется одна из следующих областей OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Для получения дополнительной информации см. Обзор аутентификации .

Результат агрегации

Результат одного сегмента из запроса агрегации Firestore.

aggregate_fields одинаковы для всех результатов в запросе агрегации, в отличие от запросов документов, которые могут иметь разные поля для каждого результата.

Поля
aggregate_fields

map<string, Value >

Результат функций агрегирования, например: COUNT(*) AS total_docs .

Ключом является alias , назначенный функции агрегации на входе, а размер этой карты равен количеству функций агрегации в запросе.

МассивЗначение

Значение массива.

Поля
values[]

Value

Значения в массиве.

Пакетный запрос документов

Запрос Firestore.BatchGetDocuments .

Поля
database

string

Необходимый. Имя базы данных. В формате: projects/{project_id}/databases/{database_id} .

documents[]

string

Имена документов, которые необходимо получить. В формате: projects/{project_id}/databases/{database_id}/documents/{document_path} . Запрос не будет выполнен, если какой-либо документ не является дочерним ресурсом данной database . Повторяющиеся имена будут удалены.

mask

DocumentMask

Поля для возврата. Если не установлено, возвращает все поля.

Если в документе есть поле, которого нет в этой маске, это поле не будет возвращено в ответе.

Объединённое поле consistency_selector . Режим согласованности для этой транзакции. Если не установлено, по умолчанию используется строгая согласованность. consistency_selector может быть только одним из следующих:
transaction

bytes

Считывает документы в транзакции.

new_transaction

TransactionOptions

Начинает новую транзакцию и читает документы. По умолчанию используется транзакция только для чтения. Новый идентификатор транзакции будет возвращен в качестве первого ответа в потоке.

read_time

Timestamp

Читает документы в том виде, в каком они были на данный момент.

Это должна быть метка времени с точностью до микросекунды за последний час или, если включено восстановление на момент времени, дополнительно может быть метка времени с точностью до целой минуты за последние 7 дней.

Пакетный запрос документовОтвет

Потоковый ответ для Firestore.BatchGetDocuments .

Поля
transaction

bytes

Транзакция, которая была запущена в рамках этого запроса. Будет установлено только в первом ответе и только в том случае, если в запросе был установлен BatchGetDocumentsRequest.new_transaction .

read_time

Timestamp

Время чтения документа. Это может быть монотически возрастающим, в этом случае предыдущие документы в потоке результатов гарантированно не изменились между их read_time и этим.

result поля объединения. Единый результат. Это может быть пусто, если сервер просто возвращает транзакцию. result может быть только одним из следующих:
found

Document

Документ, который был запрошен.

missing

string

Имя документа, которое было запрошено, но не существует. В формате: projects/{project_id}/databases/{database_id}/documents/{document_path} .

Пакетная записьзапроса

Запрос Firestore.BatchWrite .

Поля
database

string

Необходимый. Имя базы данных. В формате: projects/{project_id}/databases/{database_id} .

writes[]

Write

Пишет подать заявку.

Метод не применяет атомарную запись и не гарантирует упорядочивание. Каждая запись завершается успешно или неудачно независимо. Вы не можете писать в один и тот же документ более одного раза за запрос.

labels

map<string, string>

Метки, связанные с этой пакетной записью.

Пакетная записьответа

Ответ от Firestore.BatchWrite .

Поля
write_results[]

WriteResult

Результат применения записи.

Этот i-й результат записи соответствует i-й записи в запросе.

status[]

Status

Статус применения пишет.

Этот i-й статус записи соответствует i-й записи в запросе.

Бегинтранзакциярекуест

Запрос Firestore.BeginTransaction .

Поля
database

string

Необходимый. Имя базы данных. В формате: projects/{project_id}/databases/{database_id} .

options

TransactionOptions

Варианты сделки. По умолчанию используется транзакция чтения-записи.

Бегинтранзакцияответ

Ответ на Firestore.BeginTransaction .

Поля
transaction

bytes

Транзакция, которая была начата.

Битовая последовательность

Последовательность битов, закодированная в массиве байтов.

Каждый байт в массиве байтов bitmap хранит 8 бит последовательности. Единственным исключением является последний байт, который может хранить 8 или меньше бит. padding определяет количество битов последнего байта, которые будут игнорироваться как «заполнение». Значения этих битов «заполнения» не указаны и их следует игнорировать.

Чтобы получить первый бит, бит 0, вычислите: (bitmap[0] & 0x01) != 0 . Чтобы получить второй бит, бит 1, вычислите: (bitmap[0] & 0x02) != 0 . Чтобы получить третий бит, бит 2, вычислите: (bitmap[0] & 0x04) != 0 . Чтобы получить четвертый бит, бит 3, вычислите: (bitmap[0] & 0x08) != 0 . Чтобы получить бит n, вычислите: (bitmap[n / 8] & (0x01 << (n % 8))) != 0 .

«Размер» BitSequence (количество содержащихся в нем битов) рассчитывается по следующей формуле: (bitmap.length * 8) - padding .

Поля
bitmap

bytes

Байты, которые кодируют последовательность битов. Может иметь нулевую длину.

padding

int32

Число бит последнего байта в bitmap , которое игнорируется как «заполнение». Если длина bitmap равна нулю, то это значение должно быть 0 . В противном случае это значение должно находиться в диапазоне от 0 до 7 включительно.

БлумФильтр

Фильтр Блума ( https://en.wikipedia.org/wiki/Bloom_filter) .

Фильтр Блума хэширует записи с помощью MD5 и обрабатывает полученный 128-битный хеш как два различных 64-битных значения хеш-функции, интерпретируемых как целые числа без знака с использованием кодировки с дополнением до 2.

Эти два хеш-значения, называемые h1 и h2 , затем используются для вычисления хэш-значений hash_count по формуле, начиная с i=0 :

h(i) = h1 + (i * h2)

Эти результирующие значения затем берутся по модулю количества битов в фильтре Блума, чтобы получить биты фильтра Блума для проверки данной записи.

Поля
bits

BitSequence

Данные фильтра Блума.

hash_count

int32

Количество хешей, используемых алгоритмом.

Зафиксировать запрос

Запрос Firestore.Commit .

Поля
database

string

Необходимый. Имя базы данных. В формате: projects/{project_id}/databases/{database_id} .

writes[]

Write

Пишет подать заявку.

Всегда выполняется атомарно и по порядку.

transaction

bytes

Если установлено, применяются все записи в этой транзакции и фиксируются.

КоммитОтвет

Ответ на Firestore.Commit .

Поля
write_results[]

WriteResult

Результат применения записи.

Этот i-й результат записи соответствует i-й записи в запросе.

commit_time

Timestamp

Время, когда произошла фиксация. Любое чтение с равным или большим read_time гарантированно увидит эффект фиксации.

СоздатьДокументЗапрос

Запрос Firestore.CreateDocument .

Поля
parent

string

Необходимый. Родительский ресурс. Например: projects/{project_id}/databases/{database_id}/documents или projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}

collection_id

string

Необходимый. Идентификатор коллекции относительно parent для вывода в список. Например: chatrooms .

document_id

string

Идентификатор документа, назначенный клиентом, который будет использоваться для этого документа.

Необязательный. Если не указано, идентификатор будет назначен службой.

document

Document

Необходимый. Документ, который нужно создать. name не должно быть установлено.

mask

DocumentMask

Поля для возврата. Если не установлено, возвращает все поля.

Если в документе есть поле, которого нет в этой маске, это поле не будет возвращено в ответе.

Курсор

Позиция в наборе результатов запроса.

Поля
values[]

Value

Значения, представляющие позицию, в том порядке, в котором они появляются в предложении запроса.

Может содержать меньше значений, чем указано в предложении order by.

before

bool

Если позиция находится непосредственно перед или сразу после заданных значений относительно порядка сортировки, определенного запросом.

УдалитьДокументЗапрос

Запрос Firestore.DeleteDocument .

Поля
name

string

Необходимый. Имя ресурса документа, который необходимо удалить. В формате: projects/{project_id}/databases/{database_id}/documents/{document_path} .

current_document

Precondition

Необязательное предварительное условие в документе. Запрос завершится неудачей, если он установлен и не соответствует целевому документу.

Документ

Документ Firestore.

Не должен превышать 1 МБ — 4 байта.

Поля
name

string

Имя ресурса документа, например projects/{project_id}/databases/{database_id}/documents/{document_path} .

fields

map<string, Value >

create_time

Timestamp

Только вывод. Время создания документа.

Это значение монотонно увеличивается, когда документ удаляется, а затем создается заново. Его также можно сравнить со значениями из других документов и read_time запроса.

update_time

Timestamp

Только вывод. Время последнего изменения документа.

Первоначально это значение установлено равным create_time а затем монотонно увеличивается с каждым изменением документа. Его также можно сравнить со значениями из других документов и read_time запроса.

Изменение документа

Document изменился.

Может быть результатом нескольких writes , включая удаления, которые в конечном итоге привели к новому значению Document .

Несколько сообщений DocumentChange могут быть возвращены для одного и того же логического изменения, если затронуто несколько целей.

Поля
document

Document

Новое состояние Document .

Если mask установлена, она содержит только те поля, которые были обновлены или добавлены.

target_ids[]

int32

Набор целевых идентификаторов целей, соответствующих этому документу.

removed_target_ids[]

int32

Набор целевых идентификаторов для целей, которые больше не соответствуют этому документу.

ДокументУдалить

Document удален.

Может быть результатом нескольких writes , включая обновления, последняя из которых удалила Document .

Несколько сообщений DocumentDelete могут быть возвращены для одного и того же логического удаления, если затронуто несколько целей.

Поля
document

string

Имя ресурса удаленного Document .

removed_target_ids[]

int32

Набор целевых идентификаторов для целей, которые ранее соответствовали этому объекту.

read_time

Timestamp

Временная метка чтения, в которой было обнаружено удаление.

Больше или равно commit_time удаления.

Маска документа

Набор путей к полям в документе. Используется для ограничения операции получения или обновления документа подмножеством его полей. Это отличается от стандартных масок полей, поскольку всегда ограничено Document и учитывает динамическую природу Value .

Поля
field_paths[]

string

Список путей к полям в маске. См. Document.fields для получения информации о синтаксисе пути к полю.

ДокументУдалить

Document был удален из поля зрения целей.

Отправляется, если документ больше не имеет отношения к цели и находится вне поля зрения. Может быть отправлено вместо DocumentDelete или DocumentChange, если сервер не может отправить новое значение документа.

Несколько сообщений DocumentRemove могут быть возвращены для одной и той же логической записи или удаления, если затронуто несколько целей.

Поля
document

string

Имя ресурса Document , который исчез из поля зрения.

removed_target_ids[]

int32

Набор целевых идентификаторов для целей, которые ранее соответствовали этому документу.

read_time

Timestamp

Временная метка чтения, в которой наблюдалось удаление.

Больше или равно времени commit_time изменения/удаления/удаления.

ДокументПреобразование

Трансформация документа.

Поля
document

string

Имя документа, который нужно преобразовать.

field_transforms[]

FieldTransform

Список преобразований, применяемых к полям документа, по порядку. Это не должно быть пусто.

Преобразование поля

Преобразование поля документа.

Поля
field_path

string

Путь поля. См. Document.fields для получения информации о синтаксисе пути к полю.

Поле объединения transform_type . Преобразование, применяемое к полю. transform_type может быть только одним из следующих:
set_to_server_value

ServerValue

Устанавливает в поле указанное значение сервера.

increment

Value

Добавляет заданное значение к текущему значению поля.

Это должно быть целое число или двойное значение. Если поле не является целым или двойным числом или если поле еще не существует, преобразование установит для поля заданное значение. Если какое-либо из заданного значения или текущего значения поля имеет двойное значение, оба значения будут интерпретироваться как двойные. Двойная арифметика и представление двойных значений соответствуют семантике IEEE 754. Если происходит переполнение положительного/отрицательного целого числа, поле разрешается до положительного/отрицательного целого числа наибольшей величины.

maximum

Value

Устанавливает для поля максимальное значение текущего значения и заданного значения.

Это должно быть целое число или двойное значение. Если поле не является целым или двойным числом или если поле еще не существует, преобразование установит для поля заданное значение. Если применяется операция максимума, когда поле и входное значение имеют смешанные типы (то есть одно целое число, а другое двойное), поле принимает тип большего операнда. Если операнды эквивалентны (например, 3 и 3.0), поле не изменяется. 0, 0,0 и -0,0 равны нулю. Максимум нулевого сохраненного значения и нулевого входного значения всегда является сохраненным значением. Максимум любого числового значения x и NaN равен NaN.

minimum

Value

Устанавливает для поля минимальное значение из его текущего значения и заданного значения.

Это должно быть целое число или двойное значение. Если поле не является целым или двойным числом или если поле еще не существует, преобразование установит для поля входное значение. Если применяется операция минимума, когда поле и входное значение имеют смешанные типы (то есть одно целое число, а другое двойное), поле принимает тип меньшего операнда. Если операнды эквивалентны (например, 3 и 3.0), поле не меняется. 0, 0,0 и -0,0 равны нулю. Минимум нулевого сохраненного значения и нулевого входного значения всегда является сохраненным значением. Минимум любого числового значения x и NaN равен NaN.

append_missing_elements

ArrayValue

Добавьте данные элементы по порядку, если они еще не присутствуют в текущем значении поля. Если поле не является массивом или поле еще не существует, сначала ему присваивается пустой массив.

Эквивалентные числа разных типов (например, 3L и 3.0) считаются равными при проверке отсутствия значения. NaN равно NaN, а Null равно Null. Если входные данные содержат несколько эквивалентных значений, будет учитываться только первое.

Соответствующий Transform_result будет иметь нулевое значение.

remove_all_from_array

ArrayValue

Удалить все заданные элементы из массива в поле. Если поле не является массивом или поле еще не существует, ему присваивается пустой массив.

Эквивалентные количества разных типов (например, 3L и 3.0) считаются равными при принятии решения о необходимости удаления элемента. NaN равно NaN, а Null равно Null. Это удалит все эквивалентные значения, если есть дубликаты.

Соответствующий Transform_result будет иметь нулевое значение.

значение сервера

Значение, рассчитываемое сервером.

Перечисления
SERVER_VALUE_UNSPECIFIED Неопределенные. Это значение нельзя использовать.
REQUEST_TIME Время обработки запроса сервером с точностью до миллисекунды. Если используется в нескольких полях (одных или разных документах) в транзакции, все поля получат одну и ту же метку времени сервера.

Статистика выполнения

Статистика выполнения запроса.

Поля
results_returned

int64

Общее количество возвращенных результатов, включая документы, прогнозы, результаты агрегирования, ключи.

execution_duration

Duration

Общее время выполнения запроса в серверной части.

read_operations

int64

Общее количество оплачиваемых операций чтения.

debug_stats

Struct

Отладка статистики выполнения запроса. Обратите внимание, что статистика отладки может меняться по мере развития Firestore. Оно может включать: { "indexes_entries_scanned": "1000", "documents_scanned": "20", "billing_details" : { "documents_billable": "20", "index_entries_billable": "1000", "min_query_cost": "0" } }

СуществованиеФильтр

Дайджест всех документов, соответствующих заданной цели.

Поля
target_id

int32

Целевой идентификатор, к которому применяется этот фильтр.

count

int32

Общее количество документов, соответствующих target_id .

Если количество соответствующих документов в клиенте отличается от числа, клиент должен вручную определить, какие документы больше не соответствуют целевому значению.

Клиент может использовать фильтр Блума unchanged_names чтобы помочь в этом определении, проверяя ВСЕ имена документов на соответствие фильтру; если имя документа НЕ находится в фильтре, это означает, что документ больше не соответствует цели.

unchanged_names

BloomFilter

Фильтр Блума, который, несмотря на свое название, содержит байтовые кодировки UTF-8 имен ресурсов ВСЕХ документов, соответствующих target_id , в форме projects/{project_id}/databases/{database_id}/documents/{document_path} .

Этот фильтр Блума может быть опущен по усмотрению сервера, например, если считается, что клиент не будет его использовать, или если его вычисление или передача слишком затратны в вычислительном отношении. Клиенты должны корректно обрабатывать отсутствие этого поля, возвращаясь к логике, использовавшейся до того, как это поле существовало; то есть повторно добавьте цель без токена возобновления, чтобы выяснить, какие документы в кэше клиента не синхронизированы.

ОбъяснениеМетрики

Объясните метрики для запроса.

Поля
plan_summary

PlanSummary

Информация о этапе планирования для запроса.

execution_stats

ExecutionStats

Агрегированная статистика выполнения запроса. Присутствует только в том случае, если ExplainOptions.analyze установлено значение true.

ОбъяснениеПараметры

Объясните варианты запроса.

Поля
analyze

bool

Необязательный. Выполнять ли этот запрос.

Если установлено значение false (по умолчанию), запрос будет планироваться, возвращая только метрики с этапов планирования.

Если значение равно true, запрос будет запланирован и выполнен, возвращая полные результаты запроса вместе с метриками этапов планирования и выполнения.

Получить документзапрос

Запрос Firestore.GetDocument .

Поля
name

string

Необходимый. Имя ресурса документа, который требуется получить. В формате: projects/{project_id}/databases/{database_id}/documents/{document_path} .

mask

DocumentMask

Поля для возврата. Если не установлено, возвращает все поля.

Если в документе есть поле, которого нет в этой маске, это поле не будет возвращено в ответе.

Объединённое поле consistency_selector . Режим согласованности для этой транзакции. Если не установлено, по умолчанию используется строгая согласованность. consistency_selector может быть только одним из следующих:
transaction

bytes

Считывает документ в транзакции.

read_time

Timestamp

Считывает версию документа в данный момент.

Это должна быть метка времени с точностью до микросекунды за последний час или, если включено восстановление на момент времени, дополнительно может быть метка времени с точностью до целой минуты за последние 7 дней.

ListCollectionIdsRequest

Запрос Firestore.ListCollectionIds .

Поля
parent

string

Необходимый. Родительский документ. В формате: projects/{project_id}/databases/{database_id}/documents/{document_path} . Например: projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

page_size

int32

Максимальное количество возвращаемых результатов.

page_token

string

Токен страницы. Должно быть значение из ListCollectionIdsResponse .

Объединённое поле consistency_selector . Режим согласованности для этого запроса. Если не установлено, по умолчанию используется строгая согласованность. consistency_selector может быть только одним из следующих:
read_time

Timestamp

Читает документы в том виде, в каком они были на данный момент.

Это должна быть метка времени с точностью до микросекунды за последний час или, если включено восстановление на момент времени, дополнительно может быть метка времени с точностью до целой минуты за последние 7 дней.

ListCollectionIdsResponse

Ответ от Firestore.ListCollectionIds .

Поля
collection_ids[]

string

Идентификаторы коллекции.

next_page_token

string

Токен страницы, который можно использовать для продолжения списка.

Список документовЗапрос

Запрос Firestore.ListDocuments .

Поля
parent

string

Необходимый. Имя родительского ресурса. В формате: projects/{project_id}/databases/{database_id}/documents или projects/{project_id}/databases/{database_id}/documents/{document_path} .

Например: projects/my-project/databases/my-database/documents или projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

collection_id

string

Необязательный. Идентификатор коллекции относительно parent для вывода в список.

Например: chatrooms или messages .

Это необязательно, и если оно не указано, Firestore будет отображать документы из всех коллекций, принадлежащих указанному parent .

page_size

int32

Необязательный. Максимальное количество документов, возвращаемых в одном ответе.

Firestore может возвращать меньшее значение, чем это значение.

page_token

string

Необязательный. Токен страницы, полученный из предыдущего ответа ListDocuments .

Предоставьте это, чтобы получить следующую страницу. При разбиении на страницы все остальные параметры (за исключением page_size ) должны соответствовать значениям, установленным в запросе, сгенерировавшем токен страницы.

order_by

string

Необязательный. Факультативный заказ документов для возврата.

Например: priority desc, __name__ desc .

Это отражает ORDER BY , используемый в запросах Firestore, но в строковом представлении. Если он отсутствует, документы упорядочиваются на основе __name__ ASC .

mask

DocumentMask

Необязательный. Поля для возврата. Если не установлено, возвращает все поля.

Если в документе есть поле, которого нет в этой маске, это поле не будет возвращено в ответе.

show_missing

bool

Если в списке должны быть указаны недостающие документы.

Документ отсутствует, если он не существует, но под ним находятся вложенные документы. Если это правда, такие отсутствующие документы будут возвращены с ключом, но не будут иметь установленных полей, create_time или update_time .

Запросы с show_missing могут не указывать where или order_by .

Объединённое поле consistency_selector . Режим согласованности для этой транзакции. Если не установлено, по умолчанию используется строгая согласованность. consistency_selector может быть только одним из следующих:
transaction

bytes

Выполните чтение как часть уже активной транзакции.

read_time

Timestamp

Выполняйте чтение в отведенное время.

Это должна быть метка времени с точностью до микросекунды за последний час или, если включено восстановление на момент времени, дополнительно может быть метка времени с точностью до целой минуты за последние 7 дней.

Список документовОтвет

Ответ на Firestore.ListDocuments .

Поля
documents[]

Document

Документы найдены.

next_page_token

string

Токен для получения следующей страницы документов.

Если это поле опущено, последующие страницы отсутствуют.

СлушатьЗапрос

Запрос на Firestore.Listen

Поля
database

string

Необходимый. Имя базы данных. В формате: projects/{project_id}/databases/{database_id} .

labels

map<string, string>

Ярлыки, связанные с этой целью, изменяются.

Поле объединения target_change . Поддерживаемая цель изменяется. target_change может быть только одним из следующих:
add_target

Target

Цель, которую нужно добавить в этот поток.

remove_target

int32

Идентификатор цели, которую необходимо удалить из этого потока.

СлушайтеОтвет

Ответ на Firestore.Listen .

Поля
Поле объединения response_type . Поддерживаемые ответы. response_type может быть только одним из следующих:
target_change

TargetChange

Цели изменились.

document_change

DocumentChange

Document изменился.

document_delete

DocumentDelete

Document удален.

document_remove

DocumentRemove

Document был удален из цели (поскольку он больше не имеет отношения к этой цели).

filter

ExistenceFilter

Фильтр, применяемый к набору документов, ранее возвращенных для данного целевого объекта.

Возвращается, когда документы могли быть удалены из заданной цели, но точные документы неизвестны.

MapValue

Значение карты.

Поля
fields

map<string, Value >

Поля карты.

Ключи карты представляют имена полей. Имена полей, соответствующие регулярному выражению __.*__ зарезервированы. Зарезервированные имена полей запрещены, за исключением определенных документированных контекстов. Ключи карты, представленные в формате UTF-8, не должны превышать 1500 байт и не могут быть пустыми.

PartitionQueryRequest

Запрос Firestore.PartitionQuery .

Поля
parent

string

Необходимый. Имя родительского ресурса. В формате: projects/{project_id}/databases/{database_id}/documents . Имена ресурсов документа не поддерживаются; можно указать только имена ресурсов базы данных.

partition_count

int64

Желаемое максимальное количество точек разделения. Разделы могут возвращаться на нескольких страницах результатов. Число должно быть положительным. Фактическое количество возвращаемых разделов может быть меньше.

Например, это значение может быть установлено на единицу меньше, чем количество выполняемых параллельных запросов, или при запуске задания конвейера данных — на единицу меньше, чем количество доступных рабочих или вычислительных экземпляров.

page_token

string

Значение next_page_token , возвращенное из предыдущего вызова PartitionQuery, которое можно использовать для получения дополнительного набора результатов. Нет никаких гарантий упорядочения между наборами результатов. Таким образом, использование нескольких наборов результатов потребует объединения различных наборов результатов.

Например, два последующих вызова с использованием page_token могут вернуть:

  • курсор B, курсор M, курсор Q
  • курсор A, курсор U, курсор W

Чтобы получить полный набор результатов, упорядоченный по результатам запроса, переданного в PartitionQuery, наборы результатов следует объединить: курсор A, курсор B, курсор M, курсор Q, курсор U, курсор W.

page_size

int32

Максимальное количество разделов, возвращаемых в этом вызове, с учетом partition_count .

Например, если partition_count = 10 и page_size = 8, первый вызов PartitionQuery вернет до 8 разделов и next_page_token , если существует больше результатов. Второй вызов PartitionQuery вернет до 2 разделов, чтобы завершить общее количество 10, указанных в partition_count .

Поле объединения query_type . Запрос на разделение. query_type может быть только одним из следующих:
structured_query

StructuredQuery

Структурированный запрос. Запрос должен указывать коллекцию со всеми потомками и быть упорядочен по возрастанию имени. Другие фильтры, порядок, пределы, смещения и курсоры начала/конца не поддерживаются.

Объединённое поле consistency_selector . Режим согласованности для этого запроса. Если не установлено, по умолчанию используется строгая согласованность. consistency_selector может быть только одним из следующих:
read_time

Timestamp

Читает документы в том виде, в каком они были на данный момент.

Это должна быть метка времени с точностью до микросекунды за последний час или, если включено восстановление на момент времени, дополнительно может быть метка времени с точностью до целой минуты за последние 7 дней.

PartitionQueryResponse

Ответ на Firestore.PartitionQuery .

Поля
partitions[]

Cursor

Результаты раздела. Каждый раздел представляет собой точку разделения, которую RunQuery может использовать в качестве начальной или конечной точки для результатов запроса. Запросы RunQuery должны выполняться с использованием того же запроса, который указан в этом запросе PartitionQuery. Курсоры разделов будут упорядочены в том же порядке, что и результаты запроса, переданного в PartitionQuery.

Например, если запрос PartitionQuery возвращает курсоры разделов A и B, выполнение следующих трех запросов вернет весь набор результатов исходного запроса:

  • запрос, end_at A
  • запрос, начало_в А, конец_в Б
  • запрос, start_at B

Пустой результат может указывать на то, что запрос имеет слишком мало результатов для секционирования или что запрос еще не поддерживается для секционирования.

next_page_token

string

Токен страницы, который можно использовать для запроса дополнительного набора результатов, вплоть до числа, указанного в partition_count в запросе PartitionQuery. Если пусто, результатов больше нет.

ПланСводка

Информация о этапе планирования для запроса.

Поля
indexes_used[]

Struct

Индексы, выбранные для запроса. Например: [ {"query_scope": "Коллекция", "properties": "(foo ASC, name ASC)"}, {"query_scope": "Collection", "properties": "(bar ASC, name ASC)" } ]

Предварительное условие

Предварительное условие документа, используемое для условных операций.

Поля
Поле объединения condition_type . Тип предварительного условия. condition_type может быть только одним из следующих:
exists

bool

Если установлено значение true , целевой документ должен существовать. Если установлено значение false , целевой документ не должен существовать.

update_time

Timestamp

Если этот параметр установлен, целевой документ должен существовать и быть последний раз обновлен на данный момент. Временная метка должна быть выровнена по микросекундам.

ОткатЗапрос

Запрос Firestore.Rollback .

Поля
database

string

Необходимый. Имя базы данных. В формате: projects/{project_id}/databases/{database_id} .

transaction

bytes

Необходимый. Транзакция для отката.

Запустить агрегационный запросрекуест

Запрос Firestore.RunAggregationQuery .

Поля
parent

string

Необходимый. Имя родительского ресурса. В формате: projects/{project_id}/databases/{database_id}/documents или projects/{project_id}/databases/{database_id}/documents/{document_path} . Например: projects/my-project/databases/my-database/documents или projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

explain_options

ExplainOptions

Необязательный. Объясните варианты запроса. Если установлено, будет возвращена дополнительная статистика запросов. В противном случае будут возвращены только результаты запроса.

Поле объединения query_type . Запрос для выполнения. query_type может быть только одним из следующих:
structured_aggregation_query

StructuredAggregationQuery

Агрегирующий запрос.

Объединённое поле consistency_selector . Режим согласованности для запроса по умолчанию — строгая согласованность. consistency_selector может быть только одним из следующих:
transaction

bytes

Запустите агрегацию в уже активной транзакции.

Значением здесь является непрозрачный идентификатор транзакции, в которой будет выполнен запрос.

new_transaction

TransactionOptions

Запускает новую транзакцию как часть запроса, по умолчанию доступную только для чтения.

Новый идентификатор транзакции будет возвращен в качестве первого ответа в потоке.

read_time

Timestamp

Выполняет запрос в заданную временную метку.

Это должна быть метка времени с точностью до микросекунды за последний час или, если включено восстановление на момент времени, дополнительно может быть метка времени с точностью до целой минуты за последние 7 дней.

ЗапускАгрегацииQueryResponse

Ответ на Firestore.RunAggregationQuery .

Поля
result

AggregationResult

Единый результат агрегирования.

Не отображается при сообщении о частичном прогрессе.

transaction

bytes

Транзакция, которая была запущена в рамках этого запроса.

Присутствует только в первом ответе, когда запрос запрашивает начало новой транзакции.

read_time

Timestamp

Время, за которое был вычислен совокупный результат. Оно всегда монотонно возрастает; в этом случае предыдущий AggregationResult в потоке результатов гарантированно не изменится между их read_time и этим.

Если запрос не возвращает результатов, будет отправлен ответ с read_time и отсутствием result , что представляет собой время выполнения запроса.

explain_metrics

ExplainMetrics

Метрики объяснения запроса. Он присутствует только в том случае, если указан RunAggregationQueryRequest.explain_options , и отправляется только один раз вместе с последним ответом в потоке.

Запустить запросрекуест

Запрос к Firestore.RunQuery .

Поля
parent

string

Необходимый. Имя родительского ресурса. В формате: projects/{project_id}/databases/{database_id}/documents или projects/{project_id}/databases/{database_id}/documents/{document_path} . Например: projects/my-project/databases/my-database/documents или projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

explain_options

ExplainOptions

Необязательный. Объясните варианты запроса. Если установлено, будет возвращена дополнительная статистика запросов. В противном случае будут возвращены только результаты запроса.

Поле объединения query_type . Запрос для выполнения. query_type может быть только одним из следующих:
structured_query

StructuredQuery

Структурированный запрос.

Объединённое поле consistency_selector . Режим согласованности для этой транзакции. Если не установлено, по умолчанию используется строгая согласованность. consistency_selector может быть только одним из следующих:
transaction

bytes

Запустите запрос в рамках уже активной транзакции.

Значением здесь является непрозрачный идентификатор транзакции, в которой будет выполнен запрос.

new_transaction

TransactionOptions

Начинает новую транзакцию и читает документы. По умолчанию используется транзакция только для чтения. Новый идентификатор транзакции будет возвращен в качестве первого ответа в потоке.

read_time

Timestamp

Читает документы в том виде, в каком они были на данный момент.

Это должна быть метка времени с точностью до микросекунды за последний час или, если включено восстановление на момент времени, дополнительно может быть метка времени с точностью до целой минуты за последние 7 дней.

Запустить запросответ

Ответ на Firestore.RunQuery .

Поля
transaction

bytes

Транзакция, которая была запущена в рамках этого запроса. Может быть задано только в первом ответе и только в том случае, если в запросе был установлен RunQueryRequest.new_transaction . Если установлено, в этом ответе не будут заданы никакие другие поля.

document

Document

Результат запроса, не заданный при сообщении о частичном ходе выполнения.

read_time

Timestamp

Время чтения документа. Это может быть монотонно возрастающим; в этом случае предыдущие документы в потоке результатов гарантированно не изменились между их read_time и этим.

Если запрос не возвращает результатов, будет отправлен ответ с read_time и document не будет, что представляет собой время выполнения запроса.

skipped_results

int32

Количество результатов, которые были пропущены из-за смещения между последним ответом и текущим ответом.

explain_metrics

ExplainMetrics

Метрики объяснения запроса. Он присутствует только в том случае, если указан RunQueryRequest.explain_options , и отправляется только один раз вместе с последним ответом в потоке.

Поле объединения continuation_selector . Режим продолжения запроса. Если он присутствует, это указывает на то, что текущий поток ответов на запрос завершен. Его можно установить как при наличии document , так и без него, но если он установлен, результаты больше не возвращаются. continuation_selector может быть только одним из следующих:
done

bool

Если он присутствует, Firestore полностью выполнил запрос и документы больше не возвращаются.

Структурированный запрос агрегации

Запрос Firestore для выполнения агрегации через StructuredQuery .

Поля
aggregations[]

Aggregation

Необязательный. Серия агрегатов, применяемых к результатам structured_query .

Требует:

  • Минимум одно и максимум пять агрегатов на запрос.
Поле объединения query_type . Базовый запрос для агрегирования. query_type может быть только одним из следующих:
structured_query

StructuredQuery

Вложенный структурированный запрос.

Агрегация

Определяет агрегацию, которая дает один результат.

Поля
alias

string

Необязательный. Необязательное имя поля, в котором будет сохранен результат агрегирования.

Если оно не указано, Firestore выберет имя по умолчанию в формате field_<incremental_id++> . Например:

AGGREGATE
  COUNT_UP_TO(1) AS count_up_to_1,
  COUNT_UP_TO(2),
  COUNT_UP_TO(3) AS count_up_to_3,
  COUNT(*)
OVER (
  ...
);

становится:

AGGREGATE
  COUNT_UP_TO(1) AS count_up_to_1,
  COUNT_UP_TO(2) AS field_1,
  COUNT_UP_TO(3) AS count_up_to_3,
  COUNT(*) AS field_2
OVER (
  ...
);

Требует:

  • Должен быть уникальным для всех псевдонимов агрегации.
  • Соответствуйте ограничениям document field name .
Полевой operator Союза. Обязательный тип выполняемой агрегации. operator может быть только одним из следующих:
count

Count

Счетный агрегатор.

sum

Sum

Суммарный агрегатор.

avg

Avg

Средний агрегатор.

Среднее

Среднее значение запрошенного поля.

  • Будут агрегироваться только числовые значения. Все нечисловые значения, включая NULL пропускаются.

  • Если агрегированные значения содержат NaN , возвращается NaN . Математика Infinity соответствует стандартам IEEE-754.

  • Если набор агрегированных значений пуст, возвращается NULL .

  • Всегда возвращает результат как двойной.

Поля
field

FieldReference

Поле для агрегирования.

Считать

Количество документов, соответствующих запросу.

Функция агрегирования COUNT(*) работает со всем документом, поэтому не требует ссылки на поле.

Поля
up_to

Int64Value

Необязательный. Необязательное ограничение на максимальное количество документов для подсчета.

Это дает возможность установить верхнюю границу количества сканируемых документов, ограничивая задержку и стоимость.

Unspecified интерпретируется как отсутствие ограничений.

Пример высокого уровня:

AGGREGATE COUNT_UP_TO(1000) OVER ( SELECT * FROM k );

Требует:

  • Должно быть больше нуля, если оно присутствует.

Сумма

Сумма значений запрошенного поля.

  • Будут агрегироваться только числовые значения. Все нечисловые значения, включая NULL пропускаются.

  • Если агрегированные значения содержат NaN , возвращается NaN . Математика Infinity соответствует стандартам IEEE-754.

  • Если набор агрегированных значений пуст, возвращается 0.

  • Возвращает 64-битное целое число, если все агрегированные числа являются целыми числами и результат суммы не переполняется. В противном случае результат возвращается как двойной. Обратите внимание: даже если все агрегированные значения являются целыми числами, результат возвращается как двойное число, если он не может поместиться в 64-битное целое число со знаком. В этом случае возвращаемое значение потеряет точность.

  • Когда происходит опустошение, агрегирование с плавающей запятой является недетерминированным. Это означает, что повторный запуск одного и того же запроса без каких-либо изменений базовых значений может каждый раз давать немного разные результаты. В этих случаях значения следует хранить как целые числа, а не числа с плавающей запятой.

Поля
field

FieldReference

Поле для агрегирования.

Структурированный запрос

Запрос Firestore.

Этапы запроса выполняются в следующем порядке: 1. из 2. где 3. выбрать 4. order_by + start_at + end_at 5. смещение 6. предел

Поля
select

Projection

Необязательный подмножество возвращаемых полей.

Это действует как DocumentMask для документов, возвращаемых по запросу. Если не установлено, предполагается, что вызывающая сторона хочет вернуть все поля.

from[]

CollectionSelector

Коллекции для запроса.

where

Filter

Фильтр, который нужно применить.

order_by[]

Order

Порядок применения к результатам запроса.

Firestore позволяет вызывающим абонентам обеспечить полный или частичный порядок или вообще не упорядочивать. Во всех случаях Firestore гарантирует стабильный заказ, соблюдая следующие правила:

  • order_by необходим для ссылки на все поля, используемые с фильтром неравенства.
  • Все поля, которые должны присутствовать в order_by , но еще не присутствуют, добавляются в лексикографическом порядке имени поля.
  • Если заказ на __name__ не указан, он добавляется по умолчанию.

Поля добавляются в том же направлении сортировки, что и последний указанный порядок, или по возрастанию, если порядок не был указан. Например:

  • ORDER BY a становится ORDER BY a ASC, __name__ ASC
  • ORDER BY a DESC становится ORDER BY a DESC, __name__ DESC
  • WHERE a > 1 становится WHERE a > 1 ORDER BY a ASC, __name__ ASC
  • WHERE __name__ > ... AND a > 1 становится WHERE __name__ > ... AND a > 1 ORDER BY a ASC, __name__ ASC
start_at

Cursor

Потенциальный префикс позиции в наборе результатов, с которой начинается запрос.

Порядок набора результатов основан на предложении ORDER BY исходного запроса.

SELECT * FROM k WHERE a = 1 AND b > 2 ORDER BY b ASC, __name__ ASC;

Результаты этого запроса упорядочены по (b ASC, __name__ ASC) .

Курсоры могут ссылаться либо на полный порядок, либо на префикс местоположения, однако они не могут ссылаться на большее количество полей, чем указано в предоставленном ORDER BY .

Продолжая приведенный выше пример, добавление следующих начальных курсоров будет иметь различный эффект:

  • START BEFORE (2, /k/123) : начать запрос непосредственно перед a = 1 AND b > 2 AND __name__ > /k/123 .
  • START AFTER (10) : начать запрос сразу после a = 1 AND b > 10 .

В отличие от OFFSET , который требует пропуска первых N результатов, начальный курсор позволяет начать запрос с логической позиции. Это положение не обязательно должно соответствовать фактическому результату, оно будет сканироваться вперед от этого положения, чтобы найти следующий документ.

Требует:

  • Количество значений не может превышать количество полей, указанных в предложении ORDER BY .
end_at

Cursor

Потенциальный префикс позиции в наборе результатов, на которой завершается запрос.

Это похоже на START_AT , но контролирует конечную позицию, а не начальную.

Требует:

  • Количество значений не может превышать количество полей, указанных в предложении ORDER BY .
offset

int32

Количество документов, которые необходимо пропустить перед возвратом первого результата.

Это применяется после ограничений, указанных в WHERE , START AT и END AT , но до предложения LIMIT .

Требует:

  • Значение должно быть больше или равно нулю, если оно указано.
limit

Int32Value

Максимальное количество возвращаемых результатов.

Применяется после всех остальных ограничений.

Требует:

  • Значение должно быть больше или равно нулю, если оно указано.
find_nearest

FindNearest

Необязательный. Поиск потенциальных ближайших соседей.

Применяется после всех остальных фильтров и упорядочения.

Находит ближайшие векторные внедрения к заданному вектору запроса.

Селектор коллекций

Выбор коллекции, например messages as m1 .

Поля
collection_id

string

Идентификатор коллекции. Если установлено, выбираются только коллекции с этим идентификатором.

all_descendants

bool

Если установлено значение false, выбираются только коллекции, которые являются непосредственными дочерними элементами parent , указанного в содержащем RunQueryRequest . Если установлено значение true, выбираются все коллекции-потомки.

КомпозитныйФильтр

Фильтр, который объединяет несколько других фильтров с помощью данного оператора.

Поля
op

Operator

Оператор объединения нескольких фильтров.

filters[]

Filter

Список фильтров для объединения.

Требует:

  • Имеется хотя бы один фильтр.

Оператор

Оператор составного фильтра.

Перечисления
OPERATOR_UNSPECIFIED Неопределенные. Это значение нельзя использовать.
AND Документы должны соответствовать всем комбинированным фильтрам.
OR Документы должны соответствовать хотя бы одному из комбинированных фильтров.

Направление

Направление сортировки.

Перечисления
DIRECTION_UNSPECIFIED Неопределенные.
ASCENDING Восходящий.
DESCENDING По убыванию.

ФилдФильтр

Фильтр по определенному полю.

Поля
field

FieldReference

Поле для фильтрации.

op

Operator

Оператор для фильтрации.

value

Value

Значение для сравнения.

Оператор

Оператор фильтра поля.

Перечисления
OPERATOR_UNSPECIFIED Неопределенные. Это значение нельзя использовать.
LESS_THAN

Данное field меньше заданного value .

Требует:

  • Это field стоит первым в order_by .
LESS_THAN_OR_EQUAL

Данное field меньше или равно заданному value .

Требует:

  • Это field стоит первым в order_by .
GREATER_THAN

Данное field больше заданного value .

Требует:

  • Это field стоит первым в order_by .
GREATER_THAN_OR_EQUAL

Данное field больше или равно заданному value .

Требует:

  • Это field стоит первым в order_by .
EQUAL Данное field равно данному value .
NOT_EQUAL

Данное field не равно данному value .

Требует:

  • Никаких других NOT_EQUAL , NOT_IN , IS_NOT_NULL или IS_NOT_NAN .
  • Это field идет первым в order_by .
ARRAY_CONTAINS Данное field представляет собой массив, содержащий заданное value .
IN

Данное field равно хотя бы одному значению в данном массиве.

Требует:

  • Это value является непустым ArrayValue с учетом ограничений дизъюнкции.
  • В одном запросе нет фильтров NOT_IN .
ARRAY_CONTAINS_ANY

Данное field представляет собой массив, содержащий любые значения данного массива.

Требует:

  • Это value является непустым ArrayValue с учетом ограничений дизъюнкции.
  • Никаких других фильтров ARRAY_CONTAINS_ANY в пределах того же дизъюнкция.
  • В одном запросе нет фильтров NOT_IN .
NOT_IN

Значение field отсутствует в данном массиве.

Требует:

  • Это value является непустым ArrayValue с не более 10 значениями.
  • Никаких других OR , IN , ARRAY_CONTAINS_ANY , NOT_IN , NOT_EQUAL , IS_NOT_NULL , или IS_NOT_NAN .
  • Это field идет первым в order_by .

ПолеReference

Ссылка на поле в документе, например: stats.operations .

Поля
field_path

string

Ссылка на поле в документе.

Требует:

  • ДОЛЖЕН быть строкой сегментов, разделенной точками ( . ), где каждый сегмент соответствует ограничениям document field name .

Фильтр

Фильтр.

Поля
filter_type поля Союза_type. Тип фильтра. filter_type может быть только одним из следующих:
composite_filter

CompositeFilter

Составной фильтр.

field_filter

FieldFilter

Фильтр на поле документа.

unary_filter

UnaryFilter

Фильтр, который занимает ровно один аргумент.

Findnearest

Ближайшие соседские поисковые конфигурации.

Поля
vector_field

FieldReference

Необходимый. Индексированное векторное поле для поиска. Только документы, которые содержат векторы, размерность которых соответствует Query_Vector, могут быть возвращены.

query_vector

Value

Необходимый. Вектор запросов, на котором мы ищем. Должен быть вектор не более 2048 измерений.

distance_measure

DistanceMeasure

Необходимый. Требуется мера расстояния.

limit

Int32Value

Необходимый. Количество ближайших соседей, чтобы вернуться. Должно быть положительным целым числом не более 1000.

Дистанционная машина

Мера расстояния для использования при сравнении векторов.

Перечисления
DISTANCE_MEASURE_UNSPECIFIED Не должно быть установлено.
EUCLIDEAN Измеряет евклидово расстояние между векторами. Смотрите евклидова , чтобы узнать больше
COSINE Сравнивает векторы на основе угла между ними, что позволяет измерять сходство, которое не основано на величине векторов. Мы рекомендуем использовать dot_product с нормированными векторами единицы вместо косинусного расстояния, что математически эквивалентно с лучшей производительностью. Смотрите сходство косинуса , чтобы узнать больше.
DOT_PRODUCT Подобно косинусу, но на него влияет величина векторов. Смотрите точечный продукт, чтобы узнать больше.

Заказ

Заказ на поле.

Поля
field

FieldReference

Поле на заказ.

direction

Direction

Направление на заказ. По умолчанию ASCENDING .

Проекция

Проекция полей документа для возврата.

Поля
fields[]

FieldReference

Поля для возврата.

Если пустые, все поля возвращаются. Чтобы вернуть только имя документа, используйте ['__name__'] .

Унарифильтер

Фильтр с одним операндом.

Поля
op

Operator

Унарный оператор для подачи заявления.

Поле Союза operand_type . Аргумент в фильтр. operand_type может быть только одним из следующих:
field

FieldReference

Поле, на которое применить оператор.

Оператор

Унарно -оператор.

Перечисления
OPERATOR_UNSPECIFIED Неопределенные. Это значение не должно использоваться.
IS_NAN Данное field равно NaN .
IS_NULL Данное field равно NULL .
IS_NOT_NAN

Данное field не равно NaN .

Требует:

  • Никаких других NOT_EQUAL , NOT_IN , IS_NOT_NULL , или IS_NOT_NAN .
  • Это field идет первым в order_by .
IS_NOT_NULL

Данное field не равно NULL .

Требует:

  • Единый NOT_EQUAL , NOT_IN , IS_NOT_NULL , или IS_NOT_NAN .
  • Это field идет первым в order_by .

Цель

Спецификация набора документов для прослушивания.

Поля
target_id

int32

Целевой идентификатор, который идентифицирует цель на потоке. Должен быть положительное число и ненулевое.

Если target_id равен 0 (или неопределенным), сервер назначит идентификатор для этой цели и вернет его в событии TargetChange::ADD . После добавления цели с target_id=0 , все последующие цели также должны иметь target_id=0 . Если запрос AddTarget с target_id != 0 отправляется на сервер после того, как будет добавлен цель с target_id=0 , сервер немедленно отправит ответ с помощью события TargetChange::Remove .

Обратите внимание, что если клиент отправляет несколько запросов AddTarget без идентификатора, порядок идентификаторов, возвращаемый в TargetChage.target_ids , не определен. Поэтому клиенты должны предоставить целевой идентификатор, а не полагаться на сервер для назначения одного.

Если target_id не является нулевым, на этом потоке не должно быть существующей активной цели с тем же идентификатором.

once

bool

Если цель должна быть удалена после того, как она будет тока и последовательна.

expected_count

Int32Value

Количество документов, которые в последний раз соответствовали запросу в токене резюме или времени чтения.

Это значение имеет отношение только к предоставлению resume_type . Это значение присутствует и больше нулевых сигналов, которые клиент хочет, чтобы ExistenceFilter.unchanged_names включалось в ответ.

Поле Союза target_type . Тип цели для прослушивания. target_type может быть только одним из следующих:
query

QueryTarget

Цель, указанная в запросе.

documents

DocumentsTarget

Цель, указанная набором имен документов.

Полевое поле resume_type . Когда начать слушать.

Если указано, будут возвращены только соответствующие документы, которые были обновлены после возврата resume_token или read_time . В противном случае все соответствующие документы возвращаются до любых последующих изменений. resume_type может быть только одним из следующих:

resume_token

bytes

Токен резюме от предыдущей TargetChange для идентичной цели.

Использование токена резюме с другой целью не поддерживается и может потерпеть неудачу.

read_time

Timestamp

Начните слушать после конкретного read_time .

Клиент должен знать состояние соответствующих документов в настоящее время.

DocumentStarget

Цель, указанная набором имен документов.

Поля
documents[]

string

Имена документов для извлечения. В формате: projects/{project_id}/databases/{database_id}/documents/{document_path} . Запрос потерпит неудачу, если какой -либо из документа не является дочерним ресурсом данной database . Дубликаты имена будутэлизованы.

QueryTarget

Цель, указанная в запросе.

Поля
parent

string

Имя родительского ресурса. В формате: projects/{project_id}/databases/{database_id}/documents или projects/{project_id}/databases/{database_id}/documents/{document_path} . Например: projects/my-project/databases/my-database/documents или projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

Поле объединения query_type . Запрос для выполнения. query_type может быть только одним из следующих:
structured_query

StructuredQuery

Структурированный запрос.

Целевое изменение

Цели, которые наблюдаются, изменились.

Поля
target_change_type

TargetChangeType

Тип изменения, которые произошли.

target_ids[]

int32

Целевые идентификаторы целей, которые изменились.

Если пустое, изменение относится ко всем целям.

Порядок целевых идентификаторов не определен.

cause

Status

Ошибка, которая привела к этому изменению, если применимо.

resume_token

bytes

Токен, который можно использовать для возобновления потока для данной target_ids , или всех целей, если target_ids пуст.

Не устанавливается на все изменения цели.

read_time

Timestamp

Последовательный read_time для данной target_ids (опущен, когда Target_IDS не находится в постоянном снимке).

Поток гарантированно отправит read_time с пустым target_ids всякий раз, когда весь поток достигает нового согласованного снимка. Добавить, текущие и сбросные сообщения гарантированно (в конечном итоге) приведут к новому согласованному моментальному снимку (в то время как no_change и удаление сообщений нет).

Для данного потока read_time гарантированно будет монотонно увеличивается.

TargetChangeType

Тип изменения.

Перечисления
NO_CHANGE Никаких изменений не произошло. Используется только для отправки обновленного resume_token .
ADD Цели были добавлены.
REMOVE Цели были удалены.
CURRENT

Цели отражают все изменения, совершенные до того, как цели были добавлены в поток.

Это будет отправлено после или с read_time , которое больше или равно времени, в которое были добавлены цели.

Слушатели могут ждать этого изменения, если желательна семантика чтения-записи.

RESET

Цели были сброшены, и новое начальное состояние для целей будет возвращено в последующих изменениях.

После завершения начального состояния CURRENT будет возвращен, даже если ранее была указана цель, как CURRENT .

Transactionoptions

Варианты создания новой транзакции.

Поля
Полевой mode Союза. Режим транзакции. mode может быть только одним из следующих:
read_only

ReadOnly

Транзакция может использоваться только для операций чтения.

read_write

ReadWrite

Транзакция может использоваться как для операций чтения, так и для записи.

Ридонли

Варианты транзакции, которую можно использовать только для чтения документов.

Поля
Объединённое поле consistency_selector . Режим согласованности для этой транзакции. Если не установлено, по умолчанию используется строгая согласованность. consistency_selector может быть только одним из следующих:
read_time

Timestamp

Читает документы в данный момент.

Это должна быть метка времени с точностью до микросекунды за последний час или, если включено восстановление на момент времени, дополнительно может быть метка времени с точностью до целой минуты за последние 7 дней.

Читай пиши

Параметры для транзакции, которую можно использовать для чтения и написания документов.

Firestore не разрешает сторонние запросы автозаправочных запросов на создание чтения. транзакции.

Поля
retry_transaction

bytes

Дополнительная транзакция для повторения.

UpdatedocumentRequest

Запрос на Firestore.UpdateDocument .

Поля
document

Document

Необходимый. Обновленный документ. Создает документ, если его еще не существует.

update_mask

DocumentMask

Поля для обновления. Ни один из путей к полям в маске не может содержать зарезервированное имя.

Если документ существует на сервере и имеет поля, не указанные в маске, они остаются неизменными. Поля, указанные в маске, но отсутствующие во входном документе, удаляются из документа на сервере.

mask

DocumentMask

Поля для возврата. Если не установлено, возвращает все поля.

Если в документе есть поле, которого нет в этой маске, это поле не будет возвращено в ответе.

current_document

Precondition

Необязательное предварительное условие в документе. Запрос завершится неудачей, если он установлен и не соответствует целевому документу.

Ценить

Сообщение, которое может удерживать любой из поддерживаемых типов значений.

Поля
value_type поля Union_type. Должен иметь набор значений. value_type может быть только одним из следующих:
null_value

NullValue

Нулевое значение.

boolean_value

bool

Логическое значение.

integer_value

int64

Целочисленное значение.

double_value

double

Двойное значение.

timestamp_value

Timestamp

Значение временной метки.

Точно только к микросекундам. При хранении любая дополнительная точность округлена.

string_value

string

Строковое значение.

Строка, представленная как UTF -8, не должна превышать 1 Mib - 89 байтов. Только первые 1500 байтов представления UTF-8 рассматриваются запросами.

bytes_value

bytes

Значение байтов.

Не должно превышать 1 миб - 89 байт. При запросах учитываются только первые 1500 байт.

reference_value

string

Ссылка на документ. Например: projects/{project_id}/databases/{database_id}/documents/{document_path} .

geo_point_value

LatLng

Значение точки гео, представляющее точку на поверхности Земли.

array_value

ArrayValue

Значение массива.

Не может напрямую содержать другое значение массива, хотя может содержать карту, которая содержит другой массив.

map_value

MapValue

Значение карты.

Писать

Написать на документе.

Поля
update_mask

DocumentMask

Поля для обновления в этой записи.

Это поле можно установить только при update операции. Если маска не установлена ​​для update , а документ существует, любые существующие данные будут перезаписаны. Если маска установлена ​​и документ на сервере имеет поля, не покрытые маской, они остаются без изменений. Поля, указанные в маске, но отсутствующие во входном документе, удаляются из документа на сервере. Полевые пути в этой маске не должны содержать зарезервированное имя поля.

update_transforms[]

FieldTransform

Преобразования для выполнения после обновления.

Это поле можно установить только при update операции. Если присутствует, эта запись эквивалентна выполнению update и transform в тот же документ атомно и по порядку.

current_document

Precondition

Необязательное предварительное условие в документе.

Запись потерпит неудачу, если это будет установлено и не будет выполнено целевым документом.

Полевой operation Союза. Операция для выполнения. operation может быть только одним из следующих:
update

Document

Документ для написания.

delete

string

Имя документа для удаления. В формате: projects/{project_id}/databases/{database_id}/documents/{document_path} .

transform

DocumentTransform

Применяет преобразование в документ.

WriteRequest

Запрос на Firestore.Write .

Первый запрос создает поток или возобновляет существующий из токена.

При создании нового потока сервер отвечает ответом, содержащим только идентификатор и токен, для использования в следующем запросе.

При возобновлении потока сервер сначала транслирует любые ответы позже, чем заданный токен, затем ответ, содержащий только современный токен, для использования в следующем запросе.

Поля
database

string

Необходимый. Имя базы данных. В формате: projects/{project_id}/databases/{database_id} . Это требуется только в первом сообщении.

stream_id

string

Идентификатор потока записи, чтобы возобновить. Это может быть установлено только в первом сообщении. Когда останется пустым, будет создан новый поток записи.

writes[]

Write

Писает, чтобы подать заявку.

Всегда выполняется атомно и в порядке. Это должно быть пусто по первым запросам. Это может быть пусто по последнему запросу. Это не должно быть пустым по всем другим запросам.

stream_token

bytes

Токен потока, который ранее был отправлен сервером.

Клиент должен установить это поле в токен из последнего полученного WriteResponse . Это признает, что клиент получил ответы на этот токен. После отправки этого токена ранее токены больше не могут быть использованы.

Сервер может закрыть поток, если есть слишком много неподтвержденных ответов.

Оставьте это поле неоткрыто при создании нового потока. Чтобы возобновить поток в определенной точке, установите это поле и поле stream_id .

Оставьте это поле неоткрыто при создании нового потока.

labels

map<string, string>

Метки, связанные с этим запросом на запись.

Писательница

Ответ для Firestore.Write .

Поля
stream_id

string

Идентификатор потока. Установите только первое сообщение, когда был создан новый поток.

stream_token

bytes

Токен, который представляет позицию этого ответа в потоке. Это может использоваться клиентом для возобновления потока на этом этапе.

Это поле всегда установлено.

write_results[]

WriteResult

Результат применения записей.

Этот результат записи соответствует i-th write в запросе.

commit_time

Timestamp

Время, в которое произошел коммит. Любое чтение с равным или большим read_time гарантированно увидит эффекты записи.

Писатель

Результат применения записи.

Поля
update_time

Timestamp

Время последнего обновления документа после применения записи. Не устанавливается после delete .

Если запись фактически не изменила документ, это будет предыдущее Update_time.

transform_results[]

Value

Результаты применения каждого DocumentTransform.FieldTransform в том же порядке.