Package google.firestore.v1beta1

색인

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

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

일괄 쓰기

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

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

ListCollectionId

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 또는 웹 채널 (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

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

쿼리 실행

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

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

Write

rpc Write(WriteRequest) returns (WriteResponse)

문서 업데이트 및 삭제 배치를 순서대로 스트리밍합니다. 이 메서드는 gRPC 또는 웹 채널 (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일 이내의 1분짜리 타임스탬프일 수도 있습니다.

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

시작된 트랜잭션입니다.

비트 시퀀스

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

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 이하여야 합니다.

블룸필터

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

블룸(bloom) 필터는 MD5를 사용하여 엔트리를 해시하고, 그 결과로 생성된 128비트 해시를 2개의 고유한 64비트 해시 값으로 취급하여, 2의 보수 인코딩을 사용하여 부호 없는 정수로 해석합니다.

h1h2라는 이 두 해시 값은 i=0에서 시작하는 수식을 사용하여 hash_count 해시 값을 계산하는 데 사용됩니다.

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

필수 항목입니다. 나열할 컬렉션 ID(parent 기준)입니다. 예를 들면 chatrooms입니다.

document_id

string

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

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

document

Document

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

mask

DocumentMask

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

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

커서

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

필드
values[]

Value

쿼리의 order by 절에 나타나는 순서대로 위치를 나타내는 값입니다.

order by 절에 지정된 것보다 적은 수의 값을 포함할 수 있습니다.

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가 변경되었습니다.

삭제를 포함하여 궁극적으로 Document에 새로운 값이 발생한 여러 writes의 결과일 수 있습니다.

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

필드
document

Document

Document의 새로운 상태입니다.

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

target_ids[]

int32

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

removed_target_ids[]

int32

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

문서 삭제

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를 참고하세요.

문서 삭제

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이 아니거나 필드가 아직 존재하지 않는 경우, 변환은 필드를 지정된 값으로 설정합니다. 필드와 입력 값이 혼합된 유형 (즉, 1은 정수이고 1은 double)인 최대 연산이 적용되는 경우 필드는 더 큰 피연산자의 유형을 취합니다. 피연산자가 같은 경우 (예: 3과 3.0) 필드는 변경되지 않습니다. 0, 0.0 및 -0.0은 모두 0입니다. 저장 값 0과 입력 값 0의 최댓값은 항상 저장 값입니다. 숫자 값 x 및 NaN의 최댓값은 NaN입니다.

minimum

Value

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

정수 또는 double 값이어야 합니다. 필드가 정수 또는 double이 아니거나 필드가 아직 존재하지 않는 경우, 변환은 필드를 입력 값으로 설정합니다. 필드와 입력 값이 혼합된 유형 (즉, 1은 정수이고 1은 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과 같습니다. 입력에 동일한 값이 여러 개 포함되어 있으면 첫 번째 값만 고려됩니다.

해당하는 transform_result가 null 값이 됩니다.

remove_all_from_array

ArrayValue

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

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

해당하는 transform_result가 null 값이 됩니다.

ServerValue

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

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

실행 통계

쿼리의 실행 통계입니다.

필드
results_returned

int64

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

execution_duration

Duration

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

read_operations

int64

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

debug_stats

Struct

쿼리 실행의 디버깅 통계입니다. 디버깅 통계는 Firestore가 발전함에 따라 변경될 수 있습니다. 다음과 같은 값을 포함할 수 있습니다. { "indexes_entries_sCAN": "1000", "documents_sCAN": "20", "billing_details" : { "documents_billable": "20", "index_entries_billable": "1000", "min_query_cost": "0" } }

존재 필터

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

필드
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} 형식으로 포함합니다.

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

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일 이내의 1분짜리 타임스탬프일 수도 있습니다.

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일 이내의 1분짜리 타임스탬프일 수도 있습니다.

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

선택사항입니다. 나열할 컬렉션 ID(parent 기준)입니다.

예를 들면 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일 이내의 1분짜리 타임스탬프일 수도 있습니다.

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

지정된 타겟에 대해 이전에 반환된 문서 집합에 적용할 필터입니다.

지정된 대상에서 문서가 삭제되었을 수 있지만 정확한 문서를 알 수 없는 경우 반환됩니다.

지도 값

맵 값입니다.

필드
fields

map<string, Value>

지도의 필드입니다.

맵 키는 필드 이름을 나타냅니다. 정규 표현식 __.*__과 일치하는 필드 이름은 예약되어 있습니다. 예약된 필드 이름은 문서화된 특정 컨텍스트를 제외하고 금지됩니다. UTF-8로 표시되는 맵 키는 1,500바이트를 초과할 수 없으며 비워 둘 수 없습니다.

PartitionQueryRequest

Firestore.PartitionQuery의 요청입니다.

필드
parent

string

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

partition_count

int64

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

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

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일 이내의 1분짜리 타임스탬프일 수도 있습니다.

PartitionQueryResponse

Firestore.PartitionQuery의 응답입니다.

필드
partitions[]

Cursor

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

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

  • 쿼리, A 종료
  • 쿼리, start_at A, end_at B
  • 쿼리, B에서 시작

결과가 비어 있으면 파티션을 나눌 수 있는 결과가 너무 적거나 쿼리의 파티션 나누기가 아직 지원되지 않음을 나타낼 수 있습니다.

next_page_token

string

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

계획 요약

쿼리의 계획 단계 정보

필드
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

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

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일 이내의 1분짜리 타임스탬프일 수도 있습니다.

RunAggregationQueryResponse

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

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

통합 필드 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일 이내의 1분짜리 타임스탬프일 수도 있습니다.

RunQueryResponse

Firestore.RunQuery의 응답입니다.

필드
transaction

bytes

이 요청의 일부로 시작된 트랜잭션입니다. 요청에서 RunQueryRequest.new_transaction이 설정된 경우에만 첫 번째 응답에서만 설정할 수 있습니다. 설정되면 이 응답에 다른 필드가 설정되지 않습니다.

document

Document

쿼리 결과이며 부분적 진행 상황을 보고할 때는 설정되지 않습니다.

read_time

Timestamp

문서를 읽은 시간입니다. 이는 일정하게 증가할 수 있습니다. 이 경우 결과 스트림의 이전 문서가 read_time와 이 문서 간에 변경되지 않았습니다.

쿼리에서 결과를 반환하지 않으면 read_timedocument가 없는 응답이 전송되며 이는 쿼리가 실행된 시간을 나타냅니다.

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

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

평균

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

  • 숫자 값만 집계됩니다. 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. from 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 a이(가) ORDER BY a ASC, __name__ ASC(으)로 변경됨
  • ORDER BY a DESC이(가) ORDER BY a DESC, __name__ DESC(으)로 변경됨
  • WHERE a > 1이(가) WHERE a > 1 ORDER BY a ASC, __name__ ASC(으)로 변경됨
  • WHERE __name__ > ... AND a > 1이(가) WHERE __name__ > ... AND a > 1 ORDER BY a ASC, __name__ ASC(으)로 변경됨
start_at

Cursor

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

결과 세트의 순서는 원래 쿼리의 ORDER BY 절에 따라 결정됩니다.

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

이 쿼리의 결과는 (b ASC, __name__ ASC)을 기준으로 정렬됩니다.

커서는 전체 순서 또는 위치의 접두사를 참조할 수 있지만 제공된 ORDER BY에 있는 것보다 더 많은 필드를 참조할 수는 없습니다.

위의 예를 계속 진행하면 다음 시작 커서를 연결하면 다양한 영향을 미칩니다.

  • START BEFORE (2, /k/123): a = 1 AND b > 2 AND __name__ > /k/123 직전에 쿼리를 시작합니다.
  • START AFTER (10): a = 1 AND b > 10 바로 뒤에서 쿼리를 시작합니다.

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

요구사항:

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

Cursor

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

START_AT와 유사하지만 시작 위치가 아닌 종료 위치를 제어합니다.

요구사항:

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

int32

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

이는 WHERE, START ATEND 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

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

요구사항:

  • 필터가 1개 이상 있습니다.

연산자

복합 필터 연산자.

열거형
OPERATOR_UNSPECIFIED 지정되지 않음. 이 값을 사용해서는 안 됩니다.
AND 문서가 결합된 필터를 모두 충족해야 합니다.
OR 문서가 결합된 필터 중 하나 이상을 충족해야 합니다.

방향

정렬 방향입니다.

열거형
DIRECTION_UNSPECIFIED 지정되지 않음.
ASCENDING 오름차순.
DESCENDING 내림차순.

필드필터

특정 필드의 필터입니다.

필드
field

FieldReference

필터링할 필드입니다.

op

Operator

필터링할 연산자입니다.

value

Value

비교할 값입니다.

연산자

필드 필터 연산자.

열거형
OPERATOR_UNSPECIFIED 지정되지 않음. 이 값을 사용해서는 안 됩니다.
LESS_THAN

지정된 field이 지정된 value보다 작습니다.

요구사항:

  • 해당 fieldorder_by에서 먼저 나옵니다.
LESS_THAN_OR_EQUAL

지정된 field이 지정된 value보다 작거나 같습니다.

요구사항:

  • 해당 fieldorder_by에서 먼저 나옵니다.
GREATER_THAN

지정된 field이 지정된 value보다 큽니다.

요구사항:

  • 해당 fieldorder_by에서 먼저 나옵니다.
GREATER_THAN_OR_EQUAL

지정된 field이 지정된 value보다 크거나 같습니다.

요구사항:

  • 해당 fieldorder_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에서 먼저 옵니다.

필드 참조

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

필드
field_path

string

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

요구사항:

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

필터

필터

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

CompositeFilter

복합 필터

field_filter

FieldFilter

문서 필드의 필터

unary_filter

UnaryFilter

정확히 1개의 인수를 사용하는 필터입니다.

가장 가까운 곳 찾기

최근접 이웃 검색 구성

필드
vector_field

FieldReference

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

query_vector

Value

필수 항목입니다. 검색 중인 쿼리 벡터입니다. 차원이 2,048개를 넘지 않는 벡터여야 합니다.

distance_measure

DistanceMeasure

필수 항목입니다. 사용할 거리 측정입니다(필수).

limit

Int32Value

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

거리 측정

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

열거형
DISTANCE_MEASURE_UNSPECIFIED 설정하면 안 됩니다.
EUCLIDEAN 벡터 사이의 EUCLIDEAN 거리를 측정합니다. 자세한 내용은 유클리드를 참고하세요.
COSINE 벡터 사이의 각도를 기준으로 벡터를 비교하므로 벡터 크기를 기반으로 하지 않는 유사성을 측정할 수 있습니다. 수학적으로 동일하며 성능이 더 뛰어난 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 지정된 fieldNaN와 같습니다.
IS_NULL 지정된 fieldNULL와 같습니다.
IS_NOT_NAN

지정된 fieldNaN와 같지 않습니다.

요구사항:

  • 다른 NOT_EQUAL, NOT_IN, IS_NOT_NULL 또는 IS_NOT_NAN 없음
  • fieldorder_by에서 먼저 옵니다.
IS_NOT_NULL

지정된 fieldNULL와 같지 않습니다.

요구사항:

  • 단일 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 후에 리슨을 시작합니다.

이때 클라이언트는 일치하는 문서의 상태를 알고 있어야 합니다.

문서 타겟

문서 이름 집합으로 지정된 대상입니다.

필드
documents[]

string

검색할 문서의 이름입니다. 형식은 projects/{project_id}/databases/{database_id}/documents/{document_path}입니다. 문서가 지정된 database의 하위 리소스가 아닌 경우 요청이 실패합니다. 중복된 이름은 생략됩니다.

검색어 타겟

쿼리로 지정된 대상.

필드
parent

string

상위 리소스 이름입니다. 형식: projects/{project_id}/databases/{database_id}/documents 또는 projects/{project_id}/databases/{database_id}/documents/{document_path} 예: projects/my-project/databases/my-database/documents 또는 projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

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

StructuredQuery

구조화된 쿼리입니다.

타겟 변경

감시 대상이 변경되었습니다.

필드
target_change_type

TargetChangeType

발생한 변경 유형입니다.

target_ids[]

int32

변경된 타겟의 타겟 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는 단조 증가하도록 보장됩니다.

타겟 변경 유형

변경 유형

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

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

타겟이 추가된 시점보다 크거나 같은 read_time를 사용하여 전송됩니다.

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

RESET

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

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

TransactionOptions

새 트랜잭션을 만드는 옵션입니다.

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

ReadOnly

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

read_write

ReadWrite

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

읽기 전용

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

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

Timestamp

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

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

읽기 쓰기

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

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

맵 값입니다.

Write

문서에 대한 쓰기입니다.

필드
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

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

쓰기 요청

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>

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

쓰기 응답

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를 동일한 순서로 적용한 결과