Package google.firestore.v1

색인

Firestore

Cloud Firestore 서비스

Cloud Firestore는 글로벌 규모의 모바일, 웹 및 IoT 앱용 데이터의 저장, 동기화, 쿼리를 간소화하는 클라우드 기반의 완전 관리형 서버리스 고속 NoSQL 문서 데이터베이스입니다. 클라이언트 라이브러리는 실시간 동기화와 오프라인 지원을 제공하며, 보안 기능과 Firebase 및 Google Cloud Platform과의 통합은 진정한 서버리스 앱 빌드를 가속화합니다.

BatchGetDocuments

rpc BatchGetDocuments(BatchGetDocumentsRequest) returns (BatchGetDocumentsResponse)

여러 문서를 가져옵니다.

이 메서드에서 반환된 문서는 요청된 순서와 동일한 순서로 반환되지 않을 수 있습니다.

승인 범위

다음 OAuth 범위 중 하나가 필요합니다.

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

자세한 내용은 인증 개요를 참조하세요.

BatchWrite

rpc BatchWrite(BatchWriteRequest) returns (BatchWriteResponse)

쓰기 작업 배치를 적용합니다.

BatchWrite 메서드는 쓰기 작업을 원자적으로 적용하지 않으며 비순차적으로 적용할 수 있습니다. 메서드에서는 문서당 두 번 이상의 쓰기를 허용하지 않습니다. 각 쓰기는 독립적으로 성공하거나 실패합니다. 각 쓰기의 성공 상태는 BatchWriteResponse를 참조하세요.

원자적으로 적용되는 쓰기 집합이 필요한 경우 대신 Commit를 사용하세요.

승인 범위

다음 OAuth 범위 중 하나가 필요합니다.

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

자세한 내용은 인증 개요를 참조하세요.

BeginTransaction

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

자세한 내용은 인증 개요를 참조하세요.

CreateDocument

rpc CreateDocument(CreateDocumentRequest) returns (Document)

새 문서를 만듭니다.

승인 범위

다음 OAuth 범위 중 하나가 필요합니다.

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

자세한 내용은 인증 개요를 참조하세요.

DeleteDocument

rpc DeleteDocument(DeleteDocumentRequest) returns (Empty)

문서를 삭제합니다.

승인 범위

다음 OAuth 범위 중 하나가 필요합니다.

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

자세한 내용은 인증 개요를 참조하세요.

GetDocument

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)

문서 아래에 모든 컬렉션 ID를 나열합니다.

승인 범위

다음 OAuth 범위 중 하나가 필요합니다.

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

자세한 내용은 인증 개요를 참조하세요.

ListDocuments

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

자세한 내용은 인증 개요를 참조하세요.

PartitionQuery

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

자세한 내용은 인증 개요를 참조하세요.

RunAggregationQuery

rpc RunAggregationQuery(RunAggregationQueryRequest) returns (RunAggregationQueryResponse)

집계 쿼리를 실행합니다.

이 API를 사용하면 Firestore.RunQuery와 같은 Document 결과를 생성하는 대신 집계를 실행하여 서버 측에서 일련의 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

자세한 내용은 인증 개요를 참조하세요.

RunQuery

rpc RunQuery(RunQueryRequest) returns (RunQueryResponse)

쿼리를 실행합니다.

승인 범위

다음 OAuth 범위 중 하나가 필요합니다.

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

자세한 내용은 인증 개요를 참조하세요.

UpdateDocument

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

자세한 내용은 인증 개요를 참조하세요.

AggregationResult

Firestore 집계 쿼리의 단일 버킷 결과입니다.

aggregate_fields의 키는 결과마다 다른 필드가 있을 수 있는 문서 쿼리와 달리 집계 쿼리의 모든 결과에 대해 동일합니다.

입력란
aggregate_fields

map<string, Value>

집계 함수의 결과입니다(예: COUNT(*) AS total_docs).

키는 입력 시 집계 함수에 할당된 alias이며 이 지도의 크기는 쿼리의 집계 함수 수와 같습니다.

ArrayValue

배열 값입니다.

입력란
values[]

Value

배열의 값입니다.

BatchGetDocumentsRequest

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. 이 트랜잭션의 일관성 모드입니다. 설정하지 않으면 strong consistency가 기본값입니다. consistency_selector은 다음 중 하나여야 합니다.
transaction

bytes

트랜잭션의 문서를 읽습니다.

new_transaction

TransactionOptions

새 트랜잭션을 시작하고 문서를 읽습니다. 기본값은 읽기 전용 트랜잭션입니다. 새 트랜잭션 ID가 스트림의 첫 번째 응답으로 반환됩니다.

read_time

Timestamp

특정 시점의 문서를 읽습니다.

지난 1시간 이내의 마이크로초 정밀도 타임스탬프여야 합니다. 또는 PITR(point-in-time recovery)이 사용 설정된 경우 지난 7일 이내의 분 전체 타임스탬프가 될 수도 있습니다.

BatchGetDocumentsResponse

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}입니다.

BatchWriteRequest

Firestore.BatchWrite의 요청입니다.

입력란
database

string

필수 항목입니다. 데이터베이스 이름입니다. 형식은 projects/{project_id}/databases/{database_id}입니다.

writes[]

Write

적용할 쓰기입니다.

메서드가 원자적으로 쓰기를 적용하지 않으며 순서를 보장하지 않습니다. 각 쓰기는 독립적으로 성공하거나 실패합니다. 요청당 두 번 이상 동일한 문서에 쓸 수 없습니다.

labels

map<string, string>

이 일괄 쓰기와 연결된 라벨입니다.

BatchWriteResponse

Firestore.BatchWrite의 응답입니다.

입력란
write_results[]

WriteResult

쓰기 적용 결과입니다.

이 i번째 쓰기 결과는 요청의 i번째 쓰기에 해당합니다.

status[]

Status

쓰기 적용 상태입니다.

이 i번째 쓰기 상태는 요청의 i번째 쓰기에 해당합니다.

BeginTransactionRequest

Firestore.BeginTransaction의 요청입니다.

입력란
database

string

필수 항목입니다. 데이터베이스 이름입니다. 형식은 projects/{project_id}/databases/{database_id}입니다.

options

TransactionOptions

거래 옵션입니다. 기본값은 읽기-쓰기 트랜잭션입니다.

BeginTransactionResponse

Firestore.BeginTransaction의 응답입니다.

입력란
transaction

bytes

시작된 트랜잭션입니다.

BitSequence

바이트 배열로 인코딩된 비트 시퀀스입니다.

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

비트 시퀀스를 인코딩하는 바이트입니다. 길이가 0일 수 있습니다.

padding

int32

bitmap에서 '패딩'으로 무시할 마지막 바이트의 비트 수입니다. bitmap의 길이가 0이면 이 값은 0이어야 합니다. 그렇지 않으면 이 값은 0 이상 7 이하여야 합니다.

BloomFilter

꽃 필터 (https://en.wikipedia.org/wiki/Bloom_filter).

블룸 필터는 항목을 MD5로 해시하고 결과로 반환된 128비트 해시를 2의 보수 인코딩을 사용하여 부호 없는 정수로 해석되는 2개의 고유한 64비트 해시 값으로 취급합니다.

그런 다음 i=0부터 시작하는 수식을 사용하여 hash_count 해시 값을 계산하는 데 h1h2라는 두 해시 값이 사용됩니다.

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

이러한 결과 값은 블룸 필터의 비트 수와 별도로 취하여 주어진 항목을 테스트할 블룸 필터의 비트를 가져옵니다.

입력란
bits

BitSequence

블룸 필터 데이터입니다.

hash_count

int32

알고리즘에서 사용하는 해시 수입니다.

CommitRequest

Firestore.Commit의 요청입니다.

입력란
database

string

필수 항목입니다. 데이터베이스 이름입니다. 형식은 projects/{project_id}/databases/{database_id}입니다.

writes[]

Write

적용할 쓰기입니다.

항상 원자적으로 그리고 순서대로 실행됩니다.

transaction

bytes

설정하면 이 트랜잭션의 모든 쓰기를 적용하고 커밋합니다.

CommitResponse

Firestore.Commit의 응답입니다.

입력란
write_results[]

WriteResult

쓰기 적용 결과입니다.

이 i번째 쓰기 결과는 요청의 i번째 쓰기에 해당합니다.

commit_time

Timestamp

커밋이 발생한 시간입니다. read_time가 같거나 큰 읽기는 커밋의 효과를 확인할 수 있습니다.

CreateDocumentRequest

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 기준 컬렉션 ID입니다. 예를 들면 chatrooms입니다.

document_id

string

이 문서에 사용하기 위해 클라이언트가 할당한 문서 ID입니다.

선택사항입니다. 지정하지 않으면 서비스에서 ID를 할당합니다.

document

Document

필수 항목입니다. 만들 문서입니다. name은 설정하면 안 됩니다.

mask

DocumentMask

반환할 필드입니다. 설정하지 않으면 모든 필드를 반환합니다.

문서에 이 마스크에 없는 필드가 있으면 해당 필드는 응답에서 반환되지 않습니다.

Cursor

쿼리 결과 집합의 위치입니다.

입력란
values[]

Value

쿼리의 순서 기준 절에 표시되는 순서대로 위치를 나타내는 값입니다.

정렬 기준 절에 지정된 것보다 적은 값을 포함할 수 있습니다.

before

bool

위치가 지정된 값 바로 앞 또는 뒤에 있는 경우 쿼리에서 정의한 정렬 순서를 기준으로 합니다.

DeleteDocumentRequest

Firestore.DeleteDocument의 요청입니다.

입력란
name

string

필수 항목입니다. 삭제할 문서의 리소스 이름입니다. 형식은 projects/{project_id}/databases/{database_id}/documents/{document_path}입니다.

current_document

Precondition

문서의 전제조건(선택사항)입니다. 이 속성이 설정되어 있지만 대상 문서에서 충족되지 않으면 요청이 실패합니다.

문서

Firestore 문서

1MiB~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과 비교할 수도 있습니다.

DocumentChange

Document가 변경되었습니다.

삭제를 포함하여 여러 writes로 인해 궁극적으로 Document에 새 값이 지정되었을 수 있습니다.

여러 타겟이 영향을 받는 경우 동일한 논리적 변경에 대해 여러 DocumentChange 메시지가 반환될 수 있습니다.

입력란
document

Document

Document의 새 상태입니다.

mask가 설정되면 업데이트되거나 추가된 필드만 포함됩니다.

target_ids[]

int32

이 문서와 일치하는 타겟의 타겟 ID 집합입니다.

removed_target_ids[]

int32

이 문서와 더 이상 일치하지 않는 대상의 타겟 ID 집합입니다.

DocumentDelete

Document가 삭제되었습니다.

업데이트를 포함한 여러 writes의 결과일 수 있습니다. 마지막에 Document가 삭제되었습니다.

여러 타겟이 영향을 받는 경우 동일한 논리적 삭제에 대해 여러 DocumentDelete 메시지가 반환될 수 있습니다.

입력란
document

string

삭제된 Document의 리소스 이름입니다.

removed_target_ids[]

int32

이전에 이 항목과 일치했던 타겟의 타겟 ID 집합입니다.

read_time

Timestamp

삭제가 관찰된 읽기 타임스탬프입니다.

삭제 commit_time보다 크거나 같습니다.

DocumentMask

문서의 필드 경로 집합입니다. 문서의 가져오기 또는 업데이트 작업을 필드 하위 집합으로 제한하는 데 사용됩니다. 이는 표준 필드 마스크와는 다릅니다. 항상 Document로 범위가 지정되고 Value의 동적 특성을 고려하기 때문입니다.

입력란
field_paths[]

string

마스크의 필드 경로 목록입니다. 필드 경로 구문 참조는 Document.fields를 참고하세요.

DocumentRemove

타겟의 뷰에서 Document가 삭제되었습니다.

문서가 더 이상 타겟과 관련이 없고 화면에서 보이지 않으면 전송됩니다. 서버에서 문서의 새 값을 전송할 수 없는 경우 DocumentDelete 또는 DocumentChange 대신 전송될 수 있습니다.

여러 타겟이 영향을 받는 경우 동일한 논리적 쓰기 또는 삭제에 대해 여러 DocumentRemove 메시지가 반환될 수 있습니다.

입력란
document

string

뷰에서 사라진 Document의 리소스 이름입니다.

removed_target_ids[]

int32

이전에 이 문서와 일치하는 타겟의 타겟 ID 집합입니다.

read_time

Timestamp

삭제가 관찰된 읽기 타임스탬프입니다.

변경/삭제/삭제의 commit_time보다 크거나 같습니다.

DocumentTransform

문서의 변환입니다.

입력란
document

string

변환할 문서의 이름입니다.

field_transforms[]

FieldTransform

문서의 필드에 순서대로 적용할 변환 목록입니다. 필수 입력란입니다.

FieldTransform

문서 필드의 변환입니다.

입력란
field_path

string

필드의 경로입니다. 필드 경로 구문 참조는 Document.fields를 참고하세요.

통합 필드 transform_type. 필드에 적용할 변환입니다. transform_type은 다음 중 하나여야 합니다.
set_to_server_value

ServerValue

필드를 지정된 서버 값으로 설정합니다.

increment

Value

지정된 값을 필드의 현재 값에 추가합니다.

정수 또는 배정밀도 값이어야 합니다. 필드가 정수 또는 double이 아니거나 필드가 아직 존재하지 않는 경우 변환은 필드를 지정된 값으로 설정합니다. 지정된 값 또는 현재 필드 값 중 하나가 double이면 두 값 모두 double로 해석됩니다. double 산술 및 double 값의 표현은 IEEE 754 의미 체계를 따릅니다. 양의/음의 정수 오버플로가 있는 경우, 필드는 가장 큰 양의 양/음수 정수로 변환됩니다.

maximum

Value

필드를 현재 값과 지정된 값의 최댓값으로 설정합니다.

정수 또는 배정밀도 값이어야 합니다. 필드가 정수 또는 double이 아니거나 필드가 아직 존재하지 않는 경우 변환은 필드를 지정된 값으로 설정합니다. 필드와 입력 값의 유형이 혼합된 유형 (예: 하나는 정수이고 하나는 double)인 최대 연산이 적용되는 경우 필드는 더 큰 피연산자의 유형을 취합니다. 피연산자가 동일하면 (예: 3과 3.0) 필드는 변경되지 않습니다. 0, 0.0, -0.0은 모두 0입니다. 0의 저장된 값과 0 입력 값의 최댓값은 항상 저장된 값입니다. 모든 숫자 값 x 및 NaN의 최댓값은 NaN입니다.

minimum

Value

필드를 현재 값과 지정된 값의 최솟값으로 설정합니다.

정수 또는 배정밀도 값이어야 합니다. 필드가 정수 또는 double이 아니거나 필드가 아직 없는 경우 변환이 필드를 입력 값으로 설정합니다. 필드와 입력 값의 유형이 혼합된 유형 (즉, 하나는 정수이고 하나는 배정밀도)인 최소 연산이 적용되는 경우 필드는 더 작은 피연산자의 유형을 취합니다. 피연산자가 동일하면 (예: 3과 3.0) 필드는 변경되지 않습니다. 0, 0.0, -0.0은 모두 0입니다. 0의 저장 값과 0 입력 값의 최솟값은 항상 저장 값입니다. 모든 숫자 값 x 및 NaN의 최솟값은 NaN입니다.

append_missing_elements

ArrayValue

현재 필드 값에 없는 경우 지정된 요소를 순서대로 추가합니다. 필드가 배열이 아니거나 필드가 아직 없는 경우에는 먼저 빈 배열로 설정됩니다.

값이 누락되었는지 확인할 때 다른 유형 (예: 3L 및 3.0)의 상응하는 개수는 동일한 것으로 간주됩니다. NaN은 NaN과 같고 Null은 Null과 같습니다. 입력에 동등한 값이 여러 개 포함된 경우 첫 번째 값만 고려됩니다.

해당 변환_결과는 null 값입니다.

remove_all_from_array

ArrayValue

필드의 배열에서 지정된 요소를 모두 삭제합니다. 필드가 배열이 아니거나 필드가 아직 없는 경우에는 빈 배열로 설정됩니다.

요소 삭제 여부를 결정할 때 서로 다른 유형 (예: 3L 및 3.0)의 상응하는 개수는 동일한 것으로 간주됩니다. NaN은 NaN과 같고 Null은 Null과 같습니다. 중복이 있는 경우 동등한 모든 값이 삭제됩니다.

해당 변환_결과는 null 값입니다.

ServerValue

서버에서 계산하는 값입니다.

열거형
SERVER_VALUE_UNSPECIFIED 지정되지 않았습니다. 이 값은 사용할 수 없습니다.
REQUEST_TIME 서버가 요청을 밀리초 단위로 처리한 시간입니다. 트랜잭션의 여러 필드 (동일하거나 다른 문서)에 사용되는 경우 모든 필드에 동일한 서버 타임스탬프가 부여됩니다.

ExecutionStats

쿼리의 실행 통계입니다.

입력란
results_returned

int64

문서, 프로젝션, 집계 결과, 키를 포함하여 반환된 총 결과 수입니다.

execution_duration

Duration

백엔드에서 쿼리를 실행하는 데 소요된 총 시간입니다.

read_operations

int64

청구 가능한 총 읽기 작업 수입니다.

debug_stats

Struct

쿼리 실행의 디버깅 통계입니다. 디버깅 통계는 Firestore가 발전함에 따라 변경될 수 있습니다. It could include: { "indexes_entries_scanned": "1000", "documents_scanned": "20", "billing_details" : { "documents_billable": "20", "index_entries_billable": "1000", "min_query_cost": "0" } }

ExistenceFilter

지정된 타겟과 일치하는 모든 문서의 다이제스트입니다.

입력란
target_id

int32

이 필터가 적용되는 타겟 ID입니다.

count

int32

target_id과 일치하는 총 문서 수입니다.

일치하는 클라이언트의 문서 수와 다른 경우 클라이언트는 더 이상 대상과 일치하지 않는 문서를 수동으로 확인해야 합니다.

클라이언트는 unchanged_names 블룸 필터를 사용하여 모든 문서 이름을 필터에 대해 테스트하여 이러한 판단을 지원할 수 있습니다. 문서 이름이 필터에 없으면 문서가 더 이상 대상과 일치하지 않는 것입니다.

unchanged_names

BloomFilter

이름에도 불구하고 target_id와 일치하는 모든 문서의 리소스 이름에 대한 UTF-8 바이트 인코딩이 projects/{project_id}/databases/{database_id}/documents/{document_path} 형식으로 포함된 블룸 필터입니다.

이 블룸 필터는 클라이언트가 사용하지 않는다고 판단되거나 계산 또는 전송하기에 너무 많은 계산 비용이 드는 경우 서버의 재량에 따라 생략될 수 있습니다. 클라이언트는 이 필드가 존재하기 전에 사용된 로직으로 대체하여 이 필드가 없는 경우를 적절하게 처리해야 합니다. 즉, 클라이언트 캐시에 있는 어떤 문서가 동기화되지 않았는지 확인하려면 재개 토큰 없이 대상을 다시 추가해야 합니다.

ExplainMetrics

검색어의 측정항목을 설명합니다.

입력란
plan_summary

PlanSummary

쿼리의 계획 단계 정보입니다.

execution_stats

ExecutionStats

쿼리 실행에서 집계된 통계입니다. ExplainOptions.analyze가 true로 설정된 경우에만 표시됩니다.

ExplainOptions

쿼리 옵션을 설명합니다.

입력란
analyze

bool

선택사항입니다. 이 쿼리를 실행할지 여부입니다.

false인 경우 (기본값) 쿼리가 계획되고 계획 단계의 측정항목만 반환됩니다.

true인 경우 쿼리가 계획되고 실행되어 계획 및 실행 단계 측정항목과 함께 전체 쿼리 결과가 반환됩니다.

GetDocumentRequest

Firestore.GetDocument의 요청입니다.

입력란
name

string

필수 항목입니다. 가져올 문서의 리소스 이름입니다. 형식은 projects/{project_id}/databases/{database_id}/documents/{document_path}입니다.

mask

DocumentMask

반환할 필드입니다. 설정하지 않으면 모든 필드를 반환합니다.

문서에 이 마스크에 없는 필드가 있으면 해당 필드는 응답에서 반환되지 않습니다.

통합 필드 consistency_selector. 이 트랜잭션의 일관성 모드입니다. 설정하지 않으면 strong consistency가 기본값입니다. consistency_selector은 다음 중 하나여야 합니다.
transaction

bytes

트랜잭션에서 문서를 읽습니다.

read_time

Timestamp

지정된 시간의 문서 버전을 읽습니다.

지난 1시간 이내의 마이크로초 정밀도 타임스탬프여야 합니다. 또는 PITR(point-in-time recovery)이 사용 설정된 경우 지난 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. 이 요청의 일관성 모드입니다. 설정하지 않으면 strong consistency가 기본값입니다. consistency_selector은 다음 중 하나여야 합니다.
read_time

Timestamp

특정 시점의 문서를 읽습니다.

지난 1시간 이내의 마이크로초 정밀도 타임스탬프여야 합니다. 또는 PITR(point-in-time recovery)이 사용 설정된 경우 지난 7일 이내의 분 전체 타임스탬프가 될 수도 있습니다.

ListCollectionIdsResponse

Firestore.ListCollectionIds의 응답입니다.

입력란
collection_ids[]

string

컬렉션 ID입니다.

next_page_token

string

목록을 계속 표시하는 데 사용할 수 있는 페이지 토큰입니다.

ListDocumentsRequest

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 기준 컬렉션 ID입니다.

예를 들면 chatrooms 또는 messages입니다.

이는 선택사항이며 제공하지 않으면 Firestore는 모든 컬렉션의 문서를 제공된 parent에 나열합니다.

page_size

int32

선택사항입니다. 단일 응답으로 반환할 최대 문서 수입니다.

Firestore가 이 값보다 적게 반환할 수 있습니다.

page_token

string

선택사항입니다. 이전 ListDocuments 응답에서 수신된 페이지 토큰입니다.

후속 페이지를 검색하려면 이를 입력합니다. 페이지로 나눌 때 다른 모든 매개변수 (page_size 제외)는 페이지 토큰을 생성한 요청에 설정된 값과 일치해야 합니다.

order_by

string

선택사항입니다. 반환할 문서의 순서(선택사항)입니다.

예를 들면 priority desc, __name__ desc입니다.

Firestore 쿼리에서 사용되는 ORDER BY를 반영하지만 문자열 표현으로 반영합니다. 없는 경우 문서는 __name__ ASC을 기준으로 정렬됩니다.

mask

DocumentMask

선택사항입니다. 반환할 필드입니다. 설정하지 않으면 모든 필드를 반환합니다.

문서에 이 마스크에 없는 필드가 있으면 해당 필드는 응답에서 반환되지 않습니다.

show_missing

bool

목록에 누락된 문서가 표시되는지 여부

존재하지 않는 문서는 누락되지만 아래에 중첩된 하위 문서가 있는 경우입니다. true인 경우 이러한 누락된 문서가 키와 함께 반환되지만 필드, create_time 또는 update_time는 설정되지 않습니다.

show_missing가 포함된 요청은 where 또는 order_by를 지정할 수 없습니다.

통합 필드 consistency_selector. 이 트랜잭션의 일관성 모드입니다. 설정하지 않으면 strong consistency가 기본값입니다. consistency_selector은 다음 중 하나여야 합니다.
transaction

bytes

이미 활성 트랜잭션의 일부로 읽기를 수행합니다.

read_time

Timestamp

제공된 시간에 읽기를 실행합니다.

지난 1시간 이내의 마이크로초 정밀도 타임스탬프여야 합니다. 또는 PITR(point-in-time recovery)이 사용 설정된 경우 지난 7일 이내의 분 전체 타임스탬프가 될 수도 있습니다.

ListDocumentsResponse

Firestore.ListDocuments의 응답입니다.

입력란
documents[]

Document

찾은 문서입니다.

next_page_token

string

문서의 다음 페이지를 검색하는 토큰입니다.

이 필드를 생략하면 후속 페이지가 표시되지 않습니다.

ListenRequest

Firestore.Listen 요청

입력란
database

string

필수 항목입니다. 데이터베이스 이름입니다. 형식은 projects/{project_id}/databases/{database_id}입니다.

labels

map<string, string>

이 타겟 변경사항과 연결된 라벨입니다.

통합 필드 target_change. 지원되는 타겟이 변경됩니다. target_change은 다음 중 하나여야 합니다.
add_target

Target

이 스트림에 추가할 대상입니다.

remove_target

int32

이 스트림에서 삭제할 타겟의 ID입니다.

ListenResponse

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로 표시되는 맵 키는 1,500바이트를 초과해서는 안 되며 비워 둘 수 없습니다.

PartitionQueryRequest

Firestore.PartitionQuery의 요청입니다.

입력란
parent

string

필수 항목입니다. 상위 리소스 이름입니다. 형식은 projects/{project_id}/databases/{database_id}/documents입니다. 문서 리소스 이름은 지원되지 않습니다. 데이터베이스 리소스 이름만 지정할 수 있습니다.

partition_count

int64

원하는 최대 파티션 포인트 수입니다. 파티션은 여러 결과 페이지에 걸쳐 반환될 수 있습니다. 숫자는 양수여야 합니다. 반환되는 실제 파티션의 수는 더 적을 수 있습니다.

예를 들어 이는 실행할 병렬 쿼리 수보다 하나 더 적게 설정하거나 데이터 파이프라인 작업을 실행하는 경우 사용 가능한 작업자 또는 컴퓨팅 인스턴스 수보다 하나 더 적게 설정할 수 있습니다.

page_token

string

추가 결과 집합을 가져오는 데 사용할 수 있는 이전 PartitionQuery 호출에서 반환된 next_page_token 값입니다. 결과 집합 간의 순서는 보장되지 않습니다. 따라서 여러 결과 집합을 사용하려면 서로 다른 결과 집합을 병합해야 합니다.

예를 들어 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개의 파티션이 반환되어 partition_count에 지정된 총 파티션 10개를 완료합니다.

통합 필드 query_type. 파티션을 나눌 쿼리입니다. query_type은 다음 중 하나여야 합니다.
structured_query

StructuredQuery

구조화된 쿼리입니다. 쿼리는 모든 하위 항목이 포함된 컬렉션을 지정해야 하며 이름 오름차순으로 정렬해야 합니다. 다른 필터, 정렬 기준, 제한, 오프셋, 시작/끝 커서는 지원되지 않습니다.

통합 필드 consistency_selector. 이 요청의 일관성 모드입니다. 설정하지 않으면 strong consistency가 기본값입니다. consistency_selector은 다음 중 하나여야 합니다.
read_time

Timestamp

특정 시점의 문서를 읽습니다.

지난 1시간 이내의 마이크로초 정밀도 타임스탬프여야 합니다. 또는 PITR(point-in-time recovery)이 사용 설정된 경우 지난 7일 이내의 분 전체 타임스탬프가 될 수도 있습니다.

PartitionQueryResponse

Firestore.PartitionQuery의 응답입니다.

입력란
partitions[]

Cursor

파티션 결과 각 파티션은 RunQuery에서 쿼리 결과의 시작 또는 끝점으로 사용할 수 있는 분할 지점입니다. RunQuery 요청은 이 PartitionQuery 요청에 제공된 것과 동일한 쿼리로 수행해야 합니다. 파티션 커서는 PartitionQuery에 제공된 쿼리 결과와 동일한 순서에 따라 정렬됩니다.

예를 들어 PartitionQuery 요청이 파티션 커서 A와 B를 반환하는 경우 다음 세 개의 쿼리를 실행하면 원래 쿼리의 전체 결과 집합이 반환됩니다.

  • 쿼리, end_at A
  • 쿼리, start_at A, end_at B
  • 쿼리, start_at B

빈 결과는 쿼리에 파티셔닝할 결과가 너무 적거나 쿼리가 아직 파티션 나누기에 지원되지 않음을 나타낼 수 있습니다.

next_page_token

string

추가 결과 집합을 요청하는 데 사용할 수 있는 페이지 토큰으로, PartitionQuery 요청에서 partition_count로 지정된 수까지입니다. 비워 두면 더 이상 결과가 없습니다.

PlanSummary

쿼리의 계획 단계 정보입니다.

입력란
indexes_used[]

Struct

쿼리용으로 선택된 색인입니다. For example: [ {"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

설정된 경우 대상 문서가 존재해야 하며 해당 시점에 최종 업데이트된 상태여야 합니다. 타임스탬프는 마이크로초로 정렬되어야 합니다.

RollbackRequest

Firestore.Rollback의 요청입니다.

입력란
database

string

필수 항목입니다. 데이터베이스 이름입니다. 형식은 projects/{project_id}/databases/{database_id}입니다.

transaction

bytes

필수 항목입니다. 롤백할 트랜잭션입니다.

RunAggregationQueryRequest

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. 쿼리의 일관성 모드로, 기본값은 strong consistency입니다. consistency_selector은 다음 중 하나여야 합니다.
transaction

bytes

이미 활성 상태인 트랜잭션 내에서 집계를 실행합니다.

여기서 값은 쿼리를 실행할 불투명한 트랜잭션 ID입니다.

new_transaction

TransactionOptions

쿼리의 일부로 새 트랜잭션을 시작하며 기본값은 읽기 전용으로 설정됩니다.

새 트랜잭션 ID가 스트림의 첫 번째 응답으로 반환됩니다.

read_time

Timestamp

지정된 타임스탬프에서 쿼리를 실행합니다.

지난 1시간 이내의 마이크로초 정밀도 타임스탬프여야 합니다. 또는 PITR(point-in-time recovery)이 사용 설정된 경우 지난 7일 이내의 분 전체 타임스탬프가 될 수도 있습니다.

RunAggregationQueryResponse

Firestore.RunAggregationQuery의 응답입니다.

입력란
result

AggregationResult

단일 집계 결과입니다.

부분 진행 상황을 보고할 때는 표시되지 않습니다.

transaction

bytes

이 요청의 일부로 시작된 트랜잭션입니다.

요청이 새 트랜잭션 시작을 요청한 경우 첫 번째 응답에만 있습니다.

read_time

Timestamp

집계 결과가 계산된 시간입니다. 이는 항상 일정하게 증가합니다. 이 경우 결과 스트림의 이전 AggregationResult는 read_time과 이 AggregationResult 간에 변경되지 않았다고 보장됩니다.

쿼리가 결과를 반환하지 않으면 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

선택사항입니다. 쿼리 옵션을 설명합니다. 설정하면 추가 쿼리 통계가 반환됩니다. 그렇지 않으면 쿼리 결과만 반환됩니다.

통합 필드 query_type. 실행할 쿼리입니다. query_type은 다음 중 하나여야 합니다.
structured_query

StructuredQuery

구조화된 쿼리입니다.

통합 필드 consistency_selector. 이 트랜잭션의 일관성 모드입니다. 설정하지 않으면 strong consistency가 기본값입니다. consistency_selector은 다음 중 하나여야 합니다.
transaction

bytes

이미 활성 상태인 트랜잭션 내에서 쿼리를 실행합니다.

여기서 값은 쿼리를 실행할 불투명한 트랜잭션 ID입니다.

new_transaction

TransactionOptions

새 트랜잭션을 시작하고 문서를 읽습니다. 기본값은 읽기 전용 트랜잭션입니다. 새 트랜잭션 ID가 스트림의 첫 번째 응답으로 반환됩니다.

read_time

Timestamp

특정 시점의 문서를 읽습니다.

지난 1시간 이내의 마이크로초 정밀도 타임스탬프여야 합니다. 또는 PITR(point-in-time recovery)이 사용 설정된 경우 지난 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. 쿼리의 연속 모드입니다. 있는 경우 현재 쿼리 응답 스트림이 완료되었음을 나타냅니다. document 유무에 관계없이 설정할 수 있지만 설정하면 더 이상 결과가 반환되지 않습니다. continuation_selector은 다음 중 하나여야 합니다.
done

bool

있는 경우 Firestore에서 요청을 완전히 완료한 것이므로 더 이상 문서가 반환되지 않습니다.

StructuredAggregationQuery

StructuredQuery를 통해 집계를 실행하기 위한 Firestore 쿼리

입력란
aggregations[]

Aggregation

선택사항입니다. structured_query의 결과에 적용할 일련의 집계입니다.

요구사항:

  • 쿼리당 집계는 최소 1개에서 최대 5개입니다.
통합 필드 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

평균 애그리게이터입니다.

Avg

요청된 필드 값의 평균입니다.

  • 숫자 값만 집계됩니다. NULL을(를) 포함하여 숫자가 아닌 모든 값은 건너뜁니다.

  • 집계된 값에 NaN이 포함되어 있으면 NaN을 반환합니다. 무한대 수학은 IEEE-754 표준을 따릅니다.

  • 집계된 값 세트가 비어 있으면 NULL를 반환합니다.

  • 결과를 항상 double로 반환합니다.

입력란
field

FieldReference

집계할 필드입니다.

개수

쿼리와 일치하는 문서 수입니다.

COUNT(*) 집계 함수는 전체 문서에 대해 작동하므로 필드 참조가 필요하지 않습니다.

입력란
up_to

Int64Value

선택사항입니다. 계산할 최대 문서 수에 대한 선택적 제약조건입니다.

이렇게 하면 스캔할 문서 수의 상한선을 설정하여 지연 시간과 비용을 제한할 수 있습니다.

지정되지 않음은 경계가 없는 것으로 해석됩니다.

대략적인 예시:

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

요구사항:

  • 0보다 커야 합니다(있는 경우).

합계

요청된 필드 값의 합계입니다.

  • 숫자 값만 집계됩니다. NULL을(를) 포함하여 숫자가 아닌 모든 값은 건너뜁니다.

  • 집계된 값에 NaN이 포함되어 있으면 NaN을 반환합니다. 무한대 수학은 IEEE-754 표준을 따릅니다.

  • 집계된 값 세트가 비어 있으면 0을 반환합니다.

  • 집계된 숫자가 모두 정수이고 합계 결과가 오버플로되지 않는 경우 64비트 정수를 반환합니다. 그렇지 않으면 결과가 double로 반환됩니다. 집계된 값이 모두 정수인 경우에도 결과는 부호 있는 64비트 정수 내에 포함될 수 없는 경우 double로 반환됩니다. 이 경우 반환된 값의 정밀도가 떨어집니다.

  • 언더플로가 발생하면 부동 소수점 집계는 비확정적입니다. 즉, 기본 값을 변경하지 않고 동일한 쿼리를 반복적으로 실행하면 매번 약간 다른 결과가 생성될 수 있습니다. 이러한 경우 값은 부동 소수점 수 이상의 정수로 저장해야 합니다.

입력란
field

FieldReference

집계할 필드입니다.

StructuredQuery

Firestore 쿼리

쿼리 단계는 다음과 같은 순서로 실행됩니다. 1.부터 2. 여기서 3. 4. order_by + start_at + end_at 5. offset 6. limit

입력란
select

Projection

반환할 필드의 하위 집합(선택사항)입니다.

이는 쿼리에서 반환된 문서에 대한 DocumentMask 역할을 합니다. 설정하지 않으면 호출자가 모든 필드가 반환되기를 원한다고 가정합니다.

from[]

CollectionSelector

쿼리할 컬렉션입니다.

where

Filter

적용할 필터입니다.

order_by[]

Order

쿼리 결과에 적용할 순서입니다.

Firestore를 사용하면 호출자가 전체 순서 지정, 부분 순서 지정 또는 아예 순서 지정을 제공하지 않을 수 있습니다. Firestore는 모든 경우에 다음 규칙을 통해 안정적인 순서를 보장합니다.

  • order_by는 불일치 필터와 함께 사용되는 모든 필드를 참조해야 합니다.
  • order_by에 있어야 하지만 아직 존재하지 않는 모든 필드는 필드 이름의 사전순으로 추가됩니다.
  • __name__의 주문을 지정하지 않으면 기본적으로 추가됩니다.

필드는 마지막에 지정된 순서와 같은 정렬 방향으로 추가되거나 순서가 지정되지 않은 경우 'ASCENDING'입니다. 예를 들면 다음과 같습니다.

  • ORDER BY aORDER BY a ASC, __name__ ASC이(가) 됩니다.
  • ORDER BY a DESCORDER BY a DESC, __name__ DESC이(가) 됩니다.
  • WHERE a > 1WHERE a > 1 ORDER BY a ASC, __name__ ASC이(가) 됩니다.
  • WHERE __name__ > ... AND a > 1WHERE __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 바로 뒤에 쿼리를 시작합니다.

건너뛰려면 처음 N개의 결과를 스캔해야 하는 OFFSET와 달리, 시작 커서를 사용하면 쿼리를 논리적 위치에서 시작할 수 있습니다. 이 위치는 실제 결과와 일치하지 않아도 되며 이 위치부터 앞으로 스캔하여 다음 문서를 찾습니다.

요구사항:

  • 값의 수는 ORDER BY 절에 지정된 필드의 수보다 클 수 없습니다.
end_at

Cursor

결과 집합에서 쿼리를 종료할 위치의 잠재적 접두사입니다.

START_AT와 유사하지만 시작 위치가 아닌 종료 위치를 제어한다는 점이 다릅니다.

요구사항:

  • 값의 수는 ORDER BY 절에 지정된 필드의 수보다 클 수 없습니다.
offset

int32

첫 번째 결과를 반환하기 전에 건너뛸 문서 수입니다.

이는 WHERE, START AT, END AT로 지정된 제약 조건 이후, LIMIT 절 앞에 적용됩니다.

요구사항:

  • 지정된 경우 이 값은 0 이상이어야 합니다.
limit

Int32Value

반환할 최대 결과 수입니다.

다른 모든 제약조건 후에 적용됩니다.

요구사항:

  • 지정된 경우 이 값은 0 이상이어야 합니다.
find_nearest

FindNearest

선택사항입니다. 잠재적 최근접 이웃 검색.

다른 모든 필터 및 정렬 후에 적용됩니다.

지정된 쿼리 벡터에 가장 가까운 벡터 임베딩을 찾습니다.

CollectionSelector

컬렉션의 선택입니다(예: messages as m1).

입력란
collection_id

string

컬렉션 ID입니다. 설정하면 이 ID가 있는 컬렉션만 선택합니다.

all_descendants

bool

false인 경우 포함된 RunQueryRequest에 지정된 parent의 직계 하위 컬렉션만 선택합니다. true인 경우 모든 하위 컬렉션을 선택합니다.

CompositeFilter

지정된 연산자를 사용하여 여러 다른 필터를 병합하는 필터입니다.

입력란
op

Operator

여러 필터를 결합하는 연산자입니다.

filters[]

Filter

결합할 필터의 목록입니다.

요구사항:

  • 필터가 하나 이상 존재합니다.

운영자

복합 필터 연산자

열거형
OPERATOR_UNSPECIFIED 지정되지 않았습니다. 이 값은 사용할 수 없습니다.
AND 문서는 결합된 모든 필터를 충족해야 합니다.
OR 문서가 결합된 필터 중 하나 이상을 충족해야 합니다.

방향

정렬 방향.

열거형
DIRECTION_UNSPECIFIED 지정되지 않았습니다.
ASCENDING 오름차순
DESCENDING 내림차순입니다.

FieldFilter

특정 필드의 필터입니다.

입력란
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가 없습니다.
  • 해당 fieldorder_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는 값이 최대 10개인 비어 있지 않은 ArrayValue입니다.
  • 다른 OR, IN, ARRAY_CONTAINS_ANY, NOT_IN, NOT_EQUAL, IS_NOT_NULL 또는 IS_NOT_NAN가 없습니다.
  • 해당 fieldorder_by에서 가장 먼저 나옵니다.

FieldReference

문서의 필드에 대한 참조입니다(예: stats.operations).

입력란
field_path

string

문서의 필드에 대한 참조입니다.

요구사항:

  • 각 세그먼트가 document field name 제한사항을 준수하는 세그먼트의 점으로 구분된(.) 문자열이어야 합니다(MUST).

필터

필터

입력란
통합 필드 filter_type. 필터 유형입니다. filter_type은 다음 중 하나여야 합니다.
composite_filter

CompositeFilter

복합 필터

field_filter

FieldFilter

문서 필드의 필터입니다.

unary_filter

UnaryFilter

정확히 하나의 인수를 사용하는 필터.

FindNearest

가장 가까운 이웃 검색 구성입니다.

입력란
vector_field

FieldReference

필수 항목입니다. 검색할 색인이 생성된 벡터 필드입니다. 차원이 query_vector와 일치하는 벡터가 포함된 문서만 반환할 수 있습니다.

query_vector

Value

필수 항목입니다. 검색 중인 쿼리 벡터입니다. 2,048차원 이하의 벡터여야 합니다.

distance_measure

DistanceMeasure

필수 항목입니다. 사용할 거리 측정으로, 필수입니다.

limit

Int32Value

필수 항목입니다. 반환할 최근접 이웃 수입니다. 1,000 이하의 양의 정수여야 합니다.

DistanceMeasure

벡터를 비교할 때 사용할 거리 측정값입니다.

열거형
DISTANCE_MEASURE_UNSPECIFIED 설정하면 안 됩니다.
EUCLIDEAN 벡터 간의 EUCLIDEAN 거리를 측정합니다. 자세한 내용은 유클리드를 참고하세요.
COSINE 벡터 사이의 각도를 기준으로 벡터를 비교하므로 벡터 크기를 기반으로 하지 않는 유사성을 측정할 수 있습니다. COSINE 거리 대신 단위 정규화된 벡터와 함께 DOT_PRODUCT를 사용하는 것이 좋습니다. 이는 수학적으로 동일하며 성능이 더 뛰어납니다. 자세한 내용은 코사인 유사성을 참조하세요.
DOT_PRODUCT 코사인과 비슷하지만 벡터 크기의 영향을 받습니다. 자세한 내용은 Dot Product를 참고하세요.

주문

필드의 주문입니다.

입력란
field

FieldReference

정렬 기준으로 사용할 필드입니다.

direction

Direction

정렬 기준 방향입니다. 기본값은 ASCENDING입니다.

투영

반환할 문서 필드의 프로젝션입니다.

입력란
fields[]

FieldReference

반환할 필드입니다.

비어 있으면 모든 필드가 반환됩니다. 문서 이름만 반환하려면 ['__name__']를 사용하세요.

UnaryFilter

피연산자가 1개인 필터

입력란
op

Operator

적용할 단항 연산자입니다.

통합 필드 operand_type. 필터의 인수입니다. operand_type은 다음 중 하나여야 합니다.
field

FieldReference

연산자를 적용할 필드입니다.

운영자

단항 연산자.

열거형
OPERATOR_UNSPECIFIED 지정되지 않았습니다. 이 값은 사용할 수 없습니다.
IS_NAN 지정된 fieldNaN와 같습니다.
IS_NULL 지정된 fieldNULL와 같습니다.
IS_NOT_NAN

지정된 field이(가) NaN와(과) 같지 않습니다.

요구사항:

  • 다른 NOT_EQUAL, NOT_IN, IS_NOT_NULL 또는 IS_NOT_NAN가 없습니다.
  • 해당 fieldorder_by에서 가장 먼저 나옵니다.
IS_NOT_NULL

지정된 field이(가) NULL와(과) 같지 않습니다.

요구사항:

  • 단일 NOT_EQUAL, NOT_IN, IS_NOT_NULL 또는 IS_NOT_NAN입니다.
  • 해당 fieldorder_by에서 가장 먼저 나옵니다.

대상

수신 대기할 문서 집합의 사양입니다.

입력란
target_id

int32

스트림에서 타겟을 식별하는 타겟 ID입니다. 양의 숫자여야 하며 0이 아니어야 합니다.

target_id이 0이거나 지정되지 않은 경우 서버는 이 타겟의 ID를 할당하고 TargetChange::ADD 이벤트에서 반환합니다. target_id=0가 있는 타겟이 추가되면 모든 후속 타겟에도 target_id=0가 있어야 합니다. target_id=0가 포함된 대상이 추가된 후 target_id != 0가 포함된 AddTarget 요청이 서버로 전송되면 서버는 즉시 TargetChange::Remove 이벤트가 포함된 응답을 전송합니다.

클라이언트가 ID 없이 여러 AddTarget 요청을 보내는 경우 TargetChage.target_ids에서 반환되는 ID의 순서는 정의되지 않습니다. 따라서 클라이언트는 서버에서 대상 ID를 할당하는 대신 대상 ID를 제공해야 합니다.

target_id이 0이 아닌 경우 이 스트림에 ID가 동일한 기존 활성 타겟이 없어야 합니다.

once

bool

타겟이 최신 상태이고 일관적인 경우 삭제해야 하는지 여부입니다.

expected_count

Int32Value

재개 토큰 또는 읽기 시간에 쿼리와 마지막으로 일치한 문서 수입니다.

이 값은 resume_type가 제공된 경우에만 관련이 있습니다. 이 값이 존재하며 0보다 크면 클라이언트가 응답에 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

구조화된 쿼리입니다.

TargetChange

감시 중인 표적이 변경되었습니다.

입력란
target_change_type

TargetChangeType

발생한 변경의 유형입니다.

target_ids[]

int32

변경된 타겟의 타겟 ID입니다.

비어 있으면 변경사항이 모든 대상에 적용됩니다.

타겟 ID의 순서는 정의되어 있지 않습니다.

cause

Status

이 변경을 유발한 오류입니다(해당하는 경우).

resume_token

bytes

지정된 target_ids 또는 target_ids가 비어 있는 경우 모든 타겟의 스트림을 재개하는 데 사용할 수 있는 토큰입니다.

타겟이 변경될 때마다 설정되지는 않습니다.

read_time

Timestamp

지정된 target_ids의 일관된 read_time입니다 (target_ids가 일관된 스냅샷에 없는 경우 생략됨).

전체 스트림이 일관된 새 스냅샷에 도달할 때마다 스트림에서는 target_ids가 비어 있는 read_time을 전송합니다. ADD, CURRENT 및 RESET 메시지는 궁극적으로 일관된 새 스냅샷을 생성합니다. 하지만 NO_CHANGE 및 REMOVE 메시지는 그렇지 않습니다.

특정 스트림에서 read_time는 일정하게 증가합니다.

TargetChangeType

변경 유형

열거형
NO_CHANGE 변경사항이 없습니다. 업데이트된 resume_token를 전송하는 데만 사용됩니다.
ADD 대상이 추가되었습니다.
REMOVE 대상이 삭제되었습니다.
CURRENT

대상은 대상이 스트림에 추가되기 전에 커밋된 모든 변경사항을 반영합니다.

타겟이 추가된 시간보다 크거나 같은 read_time와 함께 전송되거나 그 이후에 전송됩니다.

쓰기 후 읽기 의미 체계가 필요한 경우 리스너는 이 변경사항을 기다릴 수 있습니다.

RESET

타겟이 재설정되었으며, 이후 변경 시 타겟의 새로운 초기 상태가 반환됩니다.

초기 상태가 완료되면 타겟이 이전에 CURRENT로 표시되었더라도 CURRENT가 반환됩니다.

TransactionOptions

새 트랜잭션을 생성하는 옵션입니다.

입력란
통합 필드 mode. 트랜잭션의 모드입니다. mode은 다음 중 하나여야 합니다.
read_only

ReadOnly

트랜잭션은 읽기 작업에만 사용할 수 있습니다.

read_write

ReadWrite

트랜잭션은 읽기 및 쓰기 작업에 모두 사용될 수 있습니다.

ReadOnly

문서를 읽는 데만 사용할 수 있는 트랜잭션의 옵션입니다.

입력란
통합 필드 consistency_selector. 이 트랜잭션의 일관성 모드입니다. 설정하지 않으면 strong consistency가 기본값입니다. consistency_selector은 다음 중 하나여야 합니다.
read_time

Timestamp

지정된 시간의 문서를 읽습니다.

지난 1시간 이내의 마이크로초 정밀도 타임스탬프여야 합니다. 또는 PITR(point-in-time recovery)이 사용 설정된 경우 지난 7일 이내의 분 전체 타임스탬프가 될 수도 있습니다.

ReadWrite

문서를 읽고 쓰는 데 사용할 수 있는 트랜잭션의 옵션입니다.

Firestore는 읽기-쓰기 트랜잭션을 만드는 서드 파티 인증 요청을 허용하지 않습니다.

입력란
retry_transaction

bytes

재시도할 선택적 트랜잭션입니다.

UpdateDocumentRequest

Firestore.UpdateDocument의 요청입니다.

입력란
document

Document

필수 항목입니다. 업데이트된 문서 문서가 아직 없으면 문서를 만듭니다.

update_mask

DocumentMask

업데이트할 필드입니다. 마스크의 필드 경로에는 예약된 이름이 포함될 수 없습니다.

문서가 서버에 있고 마스크에서 참조되지 않는 필드가 있는 경우 해당 필드는 변경되지 않습니다. 마스크에서 참조되지만 입력 문서에는 없는 필드는 서버의 문서에서 삭제됩니다.

mask

DocumentMask

반환할 필드입니다. 설정하지 않으면 모든 필드를 반환합니다.

문서에 이 마스크에 없는 필드가 있으면 해당 필드는 응답에서 반환되지 않습니다.

current_document

Precondition

문서의 전제조건(선택사항)입니다. 이 속성이 설정되어 있지만 대상 문서에서 충족되지 않으면 요청이 실패합니다.

지원되는 값 유형을 포함할 수 있는 메시지입니다.

입력란
통합 필드 value_type. 값을 설정해야 합니다. value_type은 다음 중 하나여야 합니다.
null_value

NullValue

null 값입니다.

boolean_value

bool

부울 값

integer_value

int64

정수 값입니다.

double_value

double

double 값입니다.

timestamp_value

Timestamp

타임스탬프 값입니다.

마이크로초 단위까지만 정확합니다. 저장할 때 추가 정밀도는 내림됩니다.

string_value

string

문자열 값입니다.

UTF-8로 표시되는 문자열은 1MiB~89바이트를 초과하면 안 됩니다. 쿼리에서 UTF-8로 표시된 처음 1,500바이트만 고려됩니다.

bytes_value

bytes

바이트 값입니다.

1MiB~89바이트를 초과하면 안 됩니다. 쿼리에서 처음 1,500바이트만 고려됩니다.

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인 경우에만 설정할 수 있습니다. 이 쓰기 작업이 있는 경우, 이 쓰기가 동일한 문서에 대해 updatetransform를 원자적으로 순서대로 수행하는 것과 같습니다.

current_document

Precondition

문서의 전제조건(선택사항)입니다.

이 속성이 설정되어 있지만 대상 문서에서 충족되지 않으면 쓰기가 실패합니다.

통합 필드 operation. 실행할 작업입니다. operation은 다음 중 하나여야 합니다.
update

Document

작성할 문서입니다.

delete

string

삭제할 문서 이름입니다. 형식은 projects/{project_id}/databases/{database_id}/documents/{document_path}입니다.

transform

DocumentTransform

문서에 변환을 적용합니다.

WriteRequest

Firestore.Write의 요청입니다.

첫 번째 요청은 스트림을 만들거나 토큰에서 기존 스트림을 재개합니다.

새 스트림을 만들 때 서버는 다음 요청에 사용할 ID와 토큰만 포함된 응답을 보냅니다.

스트림을 재개할 때 서버는 먼저 지정된 토큰보다 늦게 응답을 스트리밍한 후 다음 요청에 사용할 최신 토큰만 포함된 응답을 스트리밍합니다.

입력란
database

string

필수 항목입니다. 데이터베이스 이름입니다. 형식은 projects/{project_id}/databases/{database_id}입니다. 이는 첫 번째 메시지에서만 필요합니다.

stream_id

string

재개할 쓰기 스트림의 ID입니다. 이는 첫 번째 메시지에서만 설정할 수 있습니다. 비워 두면 새 쓰기 스트림이 생성됩니다.

writes[]

Write

적용할 쓰기입니다.

항상 원자적으로 그리고 순서대로 실행됩니다. 첫 번째 요청에서는 비어 있어야 합니다. 마지막 요청에서는 비어 있을 수 있습니다. 다른 모든 요청에서 이 값을 입력해야 합니다.

stream_token

bytes

이전에 서버에서 전송한 스트림 토큰입니다.

클라이언트는 이 필드를 가장 최근에 수신한 WriteResponse의 토큰으로 설정해야 합니다. 이는 클라이언트가 이 토큰에 대한 응답을 수신했음을 확인합니다. 이 토큰을 전송한 후에는 이전 토큰을 더 이상 사용할 수 없습니다.

확인되지 않은 응답이 너무 많으면 서버에서 스트림을 닫을 수 있습니다.

새 스트림을 만들 때 이 입력란을 설정하지 마세요. 특정 지점에서 스트림을 재개하려면 이 필드와 stream_id 필드를 설정합니다.

새 스트림을 만들 때 이 입력란을 설정하지 마세요.

labels

map<string, string>

이 쓰기 요청과 연결된 라벨입니다.

WriteResponse

Firestore.Write의 응답입니다.

입력란
stream_id

string

스트림의 ID입니다. 새 스트림을 만들 때 첫 번째 메시지에만 설정됩니다.

stream_token

bytes

스트림에서 이 응답의 위치를 나타내는 토큰입니다. 클라이언트가 이 시점에서 스트림을 재개하는 데 사용할 수 있습니다.

이 필드는 항상 설정됩니다.

write_results[]

WriteResult

쓰기 적용 결과입니다.

이 i번째 쓰기 결과는 요청의 i번째 쓰기에 해당합니다.

commit_time

Timestamp

커밋이 발생한 시간입니다. read_time가 같거나 큰 읽기는 쓰기 효과를 확인할 수 있습니다.

WriteResult

쓰기 적용 결과입니다.

입력란
update_time

Timestamp

쓰기 적용 후 문서가 마지막으로 업데이트되는 시간입니다. delete 이후에 설정되지 않습니다.

쓰기로 인해 실제로 문서가 변경되지 않은 경우에는 이전 update_time이 됩니다.

transform_results[]

Value

DocumentTransform.FieldTransform를 동일한 순서로 적용한 결과