Package google.firestore.v1

索引

Firestore

Cloud Firestore サービス。

Cloud Firestore は、高速でサーバーレスなフルマネージドのクラウド ネイティブ NoSQL ドキュメント データベースです。グローバル規模で展開されるこのサービスを利用することにより、モバイルアプリやウェブアプリ、IoT アプリのデータの保存、同期、照会を簡単に行えるようになります。クライアント ライブラリによってライブ同期とオフライン サポートが提供され、セキュリティ機能、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

詳細については、認証の概要をご覧ください。

Commit

rpc Commit(CommitRequest) returns (CommitResponse)

必要に応じてドキュメントを更新します。トランザクションを commit します。

承認スコープ

次の 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。このトランザクションの整合性モード。設定しない場合、デフォルトで強整合性が使用されます。consistency_selector は次のいずれかになります。
transaction

bytes

トランザクション内のドキュメントを読み取ります。

new_transaction

TransactionOptions

新しいトランザクションを開始し、ドキュメントを読み取ります。デフォルトは読み取り専用トランザクションです。新しいトランザクション ID は、ストリーム内の最初のレスポンスとして返されます。

read_time

Timestamp

指定された時点のドキュメントを読み取ります。

これは、過去 1 時間以内のマイクロ秒の精度のタイムスタンプにする必要があります。ポイントインタイム リカバリが有効になっている場合は、過去 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

適用する書き込み。

メソッドは書き込みをアトミックに適用せず、順序を保証するものではありません。各書き込みは個別に成功または失敗します。1 回のリクエストで、同じドキュメントに複数回書き込むことはできません。

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 を計算します。2 番目のビットのビット 1 を取得するには、(bitmap[0] & 0x02) != 0 を計算します。3 番目のビット(ビット 2)を取得するには、(bitmap[0] & 0x04) != 0 を計算します。4 番目のビット(ビット 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 ~ 7 の範囲で指定してください。

BloomFilter

ブルーム フィルタ(https://en.wikipedia.org/wiki/Bloom_filter)

ブルーム・フィルタは、MD5 でエントリをハッシュし、結果の 128 ビット・ハッシュを 2 つの異なる 64 ビット・ハッシュ値として扱い、2 の補数エンコーディングを用いて符号なし整数として解釈する。

h1h2 という名前のこの 2 つのハッシュ値を使用して、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

設定されている場合、このトランザクションのすべての書き込みを適用し、commit します。

CommitResponse

Firestore.Commit に対するレスポンス。

フィールド
write_results[]

WriteResult

書き込みを適用した結果。

この i 番目の書き込み結果は、リクエストの i 番目の書き込みに対応します。

commit_time

Timestamp

commit が発生した時刻。read_time が同等以上の読み取りでは、commit の効果が保証されます。

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

クエリの order by 句に表示される順序で位置を表す値。

order by 句で指定されている値よりも少ない値を含めることができます。

before

bool

位置が指定された値の直前または直後である場合、クエリで定義された並べ替え順に対する相対的な位置です。

DeleteDocumentRequest

Firestore.DeleteDocument のリクエスト。

フィールド
name

string

必須。削除するドキュメントのリソース名。形式は projects/{project_id}/databases/{database_id}/documents/{document_path} です。

current_document

Precondition

ドキュメントの前提条件(省略可)。これが設定されていて、ターゲット ドキュメントでこれが満たされていない場合、リクエストは失敗します。

ドキュメント

Firestore ドキュメント。

1 MiB ~ 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 値の表現は IEEE 754 セマンティクスに従います。正または負の整数オーバーフローがある場合、フィールドは大きさが最大の正または負の整数に解決されます。

maximum

Value

フィールドの現在の値と指定された値の最大値に設定します。

整数値または倍精度値を指定してください。フィールドが整数または倍精度浮動小数点でない場合、またはフィールドがまだ存在しない場合、変換によってそのフィールドは指定された値に設定されます。フィールドと入力値の型が混在している(つまり、1 つは整数で、もう 1 つは倍精度)場合に最大演算が適用される場合、フィールドは大きい方のオペランドの型を使用します。オペランドが等しい場合(たとえば、3 と 3.0)、フィールドは変更されません。0、0.0、-0.0 はすべてゼロです。ゼロの保存値とゼロ入力値の最大値は常に、保存された値になります。数値 x と NaN の最大値は NaN です。

minimum

Value

現在の値と指定された値の最小値をフィールドに設定します。

整数値または倍精度値を指定してください。フィールドが整数または倍精度浮動小数点でない場合、またはフィールドがまだ存在しない場合は、変換によってそのフィールドは入力値に設定されます。フィールドと入力値の型が混在する最小演算が適用される場合(つまり、1 つは整数で、もう 1 つは倍精度)、フィールドは小さい方のオペランドの型を使用します。オペランドが等しい場合(たとえば、3 と 3.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 サーバーがリクエストを処理した時刻(ミリ秒単位)。トランザクションで複数のフィールド(同一または異なるドキュメント)で使用する場合は、すべてのフィールドに同じサーバー タイムスタンプが適用されます。

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。このトランザクションの整合性モード。設定しない場合、デフォルトで強整合性が使用されます。consistency_selector は次のいずれかになります。
transaction

bytes

トランザクションでドキュメントを読み取ります。

read_time

Timestamp

指定された時点のドキュメントのバージョンを読み取ります。

これは、過去 1 時間以内のマイクロ秒の精度のタイムスタンプにする必要があります。ポイントインタイム リカバリが有効になっている場合は、過去 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。このリクエストの整合性モード。設定しない場合、デフォルトで強整合性が使用されます。consistency_selector は次のいずれかになります。
read_time

Timestamp

指定された時点のドキュメントを読み取ります。

これは、過去 1 時間以内のマイクロ秒の精度のタイムスタンプにする必要があります。ポイントインタイム リカバリが有効になっている場合は、過去 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

省略可。parent に対する相対的なリスト対象のコレクション ID。

たとえば、chatroomsmessages です。

これは省略可能です。指定しない場合、Firestore は指定された parent にあるすべてのコレクションのドキュメントを一覧表示します。

page_size

int32

省略可。1 回のレスポンスで返すドキュメントの最大数。

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_timeupdate_time は設定されません。

show_missing を含むリクエストでは、where または order_by を指定できません。

共用体フィールド consistency_selector。このトランザクションの整合性モード。設定しない場合、デフォルトで強整合性が使用されます。consistency_selector は次のいずれかになります。
transaction

bytes

すでにアクティブなトランザクションの一部として読み取りを実行します。

read_time

Timestamp

指定された時刻に読み取りを実行します。

これは、過去 1 時間以内のマイクロ秒の精度のタイムスタンプにする必要があります。ポイントインタイム リカバリが有効になっている場合は、過去 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

指定されたターゲットに対して以前に返された一連のドキュメントに適用するフィルタ。

指定されたターゲットからドキュメントが削除された可能性があるものの、正確なドキュメントが不明な場合に返されます。

MapValue

マップ値。

フィールド
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 を使用した後続の 2 つの呼び出しでは、次のような結果が返されます。

  • カーソル 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 回呼び出すと、最大 2 つのパーティションが返されます。つまり、partition_count で指定された合計 10 個が完成します。

共用体フィールド query_type。パーティショニングするクエリ。query_type は次のいずれかになります。
structured_query

StructuredQuery

構造化クエリ。クエリは、すべての子孫を含むコレクションを指定し、名前の昇順で並べる必要があります。その他のフィルタ、並べ替え、制限、オフセット、開始/終了カーソルはサポートされていません。

共用体フィールド consistency_selector。このリクエストの整合性モード。設定しない場合、デフォルトで強整合性が使用されます。consistency_selector は次のいずれかになります。
read_time

Timestamp

指定された時点のドキュメントを読み取ります。

これは、過去 1 時間以内のマイクロ秒の精度のタイムスタンプにする必要があります。ポイントインタイム リカバリが有効になっている場合は、過去 7 日間以内の 1 分単位のタイムスタンプにすることもできます。

PartitionQueryResponse

Firestore.PartitionQuery に対するレスポンス。

フィールド
partitions[]

Cursor

結果を分割します。各パーティションは、クエリ結果の開始点または終了点として RunQuery で使用できる分割ポイントです。RunQuery リクエストは、この PartitionQuery リクエストで指定したものと同じクエリを使用して実行する必要があります。パーティション カーソルは、PartitionQuery に渡されたクエリの結果と同じ順序に従って並べ替えられます。

たとえば、PartitionQuery 要求がパーティション カーソル A と B を返す場合、次の 3 つのクエリを実行すると、元のクエリの結果セット全体が返されます。

  • query、end_at A
  • クエリ, 開始位置 A, 終了位置 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)"} ]

Precondition

ドキュメントの前提条件。条件付きオペレーションに使用します。

フィールド
共用体フィールド 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/documentsprojects/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

すでにアクティブなトランザクション内で集計を実行します。

この値は、クエリを実行する不透明トランザクション ID です。

new_transaction

TransactionOptions

クエリの一部として新しいトランザクションを開始します。デフォルトは読み取り専用です。

新しいトランザクション ID は、ストリーム内の最初のレスポンスとして返されます。

read_time

Timestamp

指定されたタイムスタンプでクエリを実行します。

これは、過去 1 時間以内のマイクロ秒の精度のタイムスタンプにする必要があります。ポイントインタイム リカバリが有効になっている場合は、過去 7 日間以内の 1 分単位のタイムスタンプにすることもできます。

RunAggregationQueryResponse

Firestore.RunAggregationQuery に対するレスポンス。

フィールド
result

AggregationResult

単一の集計結果。

部分的な進捗状況を報告する場合は表示されません。

transaction

bytes

このリクエストの一部として開始されたトランザクション。

リクエストが新しいトランザクションの開始をリクエストしたときの最初のレスポンスにのみ存在します。

read_time

Timestamp

集計結果が計算された時刻。これは常に単調に増加します。この場合、結果ストリームの以前の AggregationResult は、read_time とこの AggregationResult の間で変更されていないことが保証されます。

クエリが結果を返さない場合、read_timeresult のないレスポンスが送信されます。これは、クエリが実行された時刻を表します。

explain_metrics

ExplainMetrics

クエリ説明の指標。これは、RunAggregationQueryRequest.explain_options が指定された場合にのみ使用され、ストリーム内の最後のレスポンスで 1 回だけ送信されます。

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/documentsprojects/my-project/databases/my-database/documents/chatrooms/my-chatroom などです。

explain_options

ExplainOptions

省略可。クエリのオプションについて説明します。設定すると、追加のクエリ統計情報が返されます。そうでない場合は、クエリ結果のみが返されます。

共用体フィールド query_type。実行するクエリ。query_type は次のいずれかになります。
structured_query

StructuredQuery

構造化クエリ。

共用体フィールド consistency_selector。このトランザクションの整合性モード。設定しない場合、デフォルトで強整合性が使用されます。consistency_selector は次のいずれかになります。
transaction

bytes

すでにアクティブなトランザクション内でクエリを実行します。

この値は、クエリを実行する不透明トランザクション ID です。

new_transaction

TransactionOptions

新しいトランザクションを開始し、ドキュメントを読み取ります。デフォルトは読み取り専用トランザクションです。新しいトランザクション ID は、ストリーム内の最初のレスポンスとして返されます。

read_time

Timestamp

指定された時点のドキュメントを読み取ります。

これは、過去 1 時間以内のマイクロ秒の精度のタイムスタンプにする必要があります。ポイントインタイム リカバリが有効になっている場合は、過去 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 が指定された場合にのみ使用され、ストリーム内の最後のレスポンスで 1 回だけ送信されます。

共用体フィールド 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 クエリ。

フィールド
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

最初の結果を返すまでにスキップするドキュメントの数。

これは、WHERESTART ATEND AT で指定された制約の後、LIMIT 句の前に適用されます。

必須の要素

  • 指定する場合は 0 以上の値を指定してください。
limit

Int32Value

返される結果の最大件数です。

他のすべての制約の後に適用されます。

必須の要素

  • 指定する場合は 0 以上の値を指定してください。

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 ドキュメントは、結合されたフィルタの少なくとも 1 つを満たす必要があります。

方向

並べ替えの方向。

列挙型
DIRECTION_UNSPECIFIED (指定なし)
ASCENDING 昇順。
DESCENDING 降順。

FieldFilter

特定のフィールドに対するフィルタ。

フィールド
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_EQUALNOT_INIS_NOT_NULLIS_NOT_NAN は指定できません。
  • その fieldorder_by で最初に行われます。
ARRAY_CONTAINS 指定された field は、指定された value を含む配列です。
IN

指定された field は、指定された配列内の少なくとも 1 つの値と等しくなります。

必須の要素

  • value は空でない ArrayValue であり、分離制限が適用されます。
  • 同じクエリに NOT_IN フィルタはありません。
ARRAY_CONTAINS_ANY

指定された field は、指定された配列内の任意の値を含む配列です。

必須の要素

  • value は空でない ArrayValue であり、分離制限が適用されます。
  • 同じ分離内に他の ARRAY_CONTAINS_ANY フィルタがない。
  • 同じクエリに NOT_IN フィルタはありません。
NOT_IN

field の値が指定された配列にありません。

必須の要素

  • この value は、最大 10 個の値を持つ空でない ArrayValue です。
  • 他の ORINARRAY_CONTAINS_ANYNOT_INNOT_EQUALIS_NOT_NULLIS_NOT_NAN はありません。
  • その fieldorder_by で最初に行われます。

FieldReference

ドキュメント内のフィールドへの参照(例: stats.operations)。

フィールド
field_path

string

ドキュメント内のフィールドへの参照。

必須の要素

  • セグメントのドット区切り(.)文字列でなければなりません。各セグメントは、document field name 制限に準拠しています。

フィルタ

フィルタ。

フィールド
共用体フィールド filter_type。フィルタのタイプ。filter_type は次のいずれかになります。
composite_filter

CompositeFilter

複合フィルタ。

field_filter

FieldFilter

ドキュメント フィールドのフィルタ。

unary_filter

UnaryFilter

1 つの引数のみを取るフィルタ。

注文

フィールド上の注文。

フィールド
field

FieldReference

並べ替えるフィールド。

direction

Direction

並べ替える方向。デフォルトは ASCENDING です。

投影

返されるドキュメントのフィールドの射影。

フィールド
fields[]

FieldReference

返されるフィールド。

空の場合、すべてのフィールドが返されます。ドキュメントの名前のみを返すには、['__name__'] を使用します。

UnaryFilter

単一のオペランドを持つフィルタ。

フィールド
op

Operator

適用する単項演算子。

共用体フィールド operand_type。フィルタの引数。operand_type は次のいずれかになります。
field

FieldReference

演算子を適用するフィールド。

演算子

単項演算子。

列挙型
OPERATOR_UNSPECIFIED 指定なし。この値は使用しないでください。
IS_NAN 指定された fieldNaN と等しくなります。
IS_NULL 指定された fieldNULL と等しくなります。
IS_NOT_NAN

指定された fieldNaN と等しくありません。

必須の要素

  • 他の NOT_EQUALNOT_INIS_NOT_NULLIS_NOT_NAN は指定できません。
  • その fieldorder_by で最初に行われます。
IS_NOT_NULL

指定された fieldNULL と等しくありません。

必須の要素

  • 単一の NOT_EQUALNOT_INIS_NOT_NULL、または IS_NOT_NAN
  • その fieldorder_by で最初に行われます。

Target

リッスンするドキュメントのセットの仕様。

フィールド
target_id

int32

ストリーム上でターゲットを識別するターゲット ID。ゼロ以外の正の数を指定する必要があります。

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 の割り当てをサーバーに依存するのではなく、提供する必要があります。

target_id がゼロでない場合、このストリームに同じ 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/documentsprojects/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

ターゲットには、ターゲットがストリームに追加される前に commit されたすべての変更が反映されます。

これは、ターゲットが追加された時間以降の read_time とともに送信されます。

read-after-write セマンティクスが必要な場合は、リスナーでこの変更を待機できます。

RESET

ターゲットはリセットされました。以降の変更ではターゲットの新しい初期状態が返されます。

初期状態が完了すると、以前にターゲットが CURRENT と示されていた場合でも、CURRENT が返されます。

TransactionOptions

新しいトランザクションを作成するためのオプション。

フィールド
共用体フィールド mode。トランザクションのモード。mode は次のいずれかになります。
read_only

ReadOnly

このトランザクションは読み取りオペレーションにのみ使用できます。

read_write

ReadWrite

このトランザクションは読み取りオペレーションと書き込みオペレーションの両方に使用できます。

ReadOnly

ドキュメントの読み取りにのみ使用できるトランザクションのオプション。

フィールド
共用体フィールド consistency_selector。このトランザクションの整合性モード。設定しない場合、デフォルトで強整合性が使用されます。consistency_selector は次のいずれかになります。
read_time

Timestamp

指定された時刻にドキュメントを読み取ります。

これは、過去 1 時間以内のマイクロ秒の精度のタイムスタンプにする必要があります。ポイントインタイム リカバリが有効になっている場合は、過去 7 日間以内の 1 分単位のタイムスタンプにすることもできます。

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 で表される文字列は、1 MiB - 89 バイトを超えないようにする必要があります。UTF-8 表現の最初の 1,500 バイトのみがクエリで考慮されます。

bytes_value

bytes

バイト値。

1 MiB ~ 89 バイト以下にする必要があります。最初の 1,500 バイトのみがクエリで考慮されます。

reference_value

string

ドキュメントへの参照。例: projects/{project_id}/databases/{database_id}/documents/{document_path}

geo_point_value

LatLng

地表面上の 1 点を表す地理的位置の値。

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

commit が発生した時刻。read_time が同等以上の読み取りでは、書き込みの影響が保証されます。

WriteResult

書き込みを適用した結果。

フィールド
update_time

Timestamp

書き込みを適用した後のドキュメントの最終更新時間。delete の後には設定されません。

書き込みによって実際にドキュメントが変更されていない場合は、前の update_time になります。

transform_results[]

Value

DocumentTransform.FieldTransform を同じ順序で適用した結果。