Package google.firestore.v1beta1

Индекс

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

Сервис 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": "Collection", "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 , и он отправляется только один раз с последним ответом в потоке.

RUNQUERYREQUEST

Запрос на 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

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

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

StructuredQuery

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

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

bytes

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

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

new_transaction

TransactionOptions

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

read_time

Timestamp

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

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

RUNQUERYRESPONSE

Ответ для 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 поля Союза_SELECTOR. Режим продолжения для запроса. Если присутствует, это указывает, что текущий поток отклика запроса завершился. Это может быть установлено с присутствующим document или без него, но при установке больше результатов не возвращаются. continuation_selector может быть только одним из следующих:
done

bool

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

StructuredAggregationQuery

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

Поля
aggregations[]

Aggregation

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

Требует:

  • Минимум один и максимум пять агрегаций за запрос.
Полевое поле Union 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 . Бесконечная математика следует стандартам IEEE-754.

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

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

Поля
field

FieldReference

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

Считать

Подсчет документов, которые соответствуют запросу.

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

Поля
up_to

Int64Value

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

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

Неуказано интерпретируется как не связанный.

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

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

Требует:

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

Сумма

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

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

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

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

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

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

Поля
field

FieldReference

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

StructuredQuery

Запрос 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, __name__ DESC ORDER BY a 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 . Когда это правда, выбирает все коллекции потоков.

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

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

Поля
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 Filters в той же разъединении.
  • 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 .

FieldReference

Ссылка на поле в документе, пример: 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

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

StructuredQuery

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

TargetChange

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

Поля
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 .