Package google.firestore.v1

索引

ファイヤーストア

クラウド Firestore サービス。

Cloud Firestore は、高速でフルマネージドのサーバーレスのクラウドネイティブ NoSQL ドキュメント データベースで、モバイル、Web、IoT アプリのデータの保存、同期、クエリを世界規模で簡素化します。クライアント ライブラリはライブ同期とオフライン サポートを提供し、セキュリティ機能と Firebase および Google Cloud Platform との統合により、真のサーバーレス アプリの構築が加速されます。

バッチ取得ドキュメント

rpc BatchGetDocuments( BatchGetDocumentsRequest ) returns ( BatchGetDocumentsResponse )

複数のドキュメントを取得します。

このメソッドによって返されるドキュメントは、要求された順序と同じ順序で返されることは保証されません。

認可範囲

次の OAuth スコープのいずれかが必要です。

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

詳細については、 「認証の概要」を参照してください。

バッチ書き込み

rpc BatchWrite( BatchWriteRequest ) returns ( BatchWriteResponse )

書き込み操作のバッチを適用します。

BatchWrite メソッドは書き込み操作をアトミックに適用せず、順不同で適用する可能性があります。このメソッドでは、ドキュメントごとに複数の書き込みは許可されません。各書き込みは独立して成功または失敗します。各書き込みの成功ステータスについては、 BatchWriteResponse参照してください。

アトミックに適用される一連の書き込みが必要な場合は、代わりにCommit使用してください。

認可範囲

次の OAuth スコープのいずれかが必要です。

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

詳細については、 「認証の概要」を参照してください。

トランザクションの開始

rpc BeginTransaction( BeginTransactionRequest ) returns ( BeginTransactionResponse )

新しいトランザクションを開始します。

認可範囲

次の OAuth スコープのいずれかが必要です。

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

詳細については、 「認証の概要」を参照してください。

専念

rpc Commit( CommitRequest ) returns ( CommitResponse )

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

認可範囲

次の OAuth スコープのいずれかが必要です。

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

詳細については、 「認証の概要」を参照してください。

ドキュメントの作成

rpc CreateDocument( CreateDocumentRequest ) returns ( Document )

新しいドキュメントを作成します。

認可範囲

次の OAuth スコープのいずれかが必要です。

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

詳細については、 「認証の概要」を参照してください。

ドキュメントの削除

rpc DeleteDocument( DeleteDocumentRequest ) returns ( Empty )

文書を削除します。

認可範囲

次の OAuth スコープのいずれかが必要です。

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

詳細については、 「認証の概要」を参照してください。

GetDocument

rpc GetDocument( GetDocumentRequest ) returns ( Document )

単一のドキュメントを取得します。

認可範囲

次の OAuth スコープのいずれかが必要です。

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

詳細については、 「認証の概要」を参照してください。

コレクション ID のリスト

rpc ListCollectionIds( ListCollectionIdsRequest ) returns ( ListCollectionIdsResponse )

ドキュメントの下にあるすべてのコレクション ID をリストします。

認可範囲

次の OAuth スコープのいずれかが必要です。

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

詳細については、 「認証の概要」を参照してください。

リストドキュメント

rpc ListDocuments( ListDocumentsRequest ) returns ( ListDocumentsResponse )

ドキュメントをリストします。

認可範囲

次の OAuth スコープのいずれかが必要です。

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

詳細については、 「認証の概要」を参照してください。

聞く

rpc Listen( ListenRequest ) returns ( ListenResponse )

変化を聞きます。このメソッドは、gRPC または WebChannel (REST ではない) 経由でのみ使用できます。

認可範囲

次の OAuth スコープのいずれかが必要です。

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

詳細については、 「認証の概要」を参照してください。

パーティションクエリ

rpc PartitionQuery( PartitionQueryRequest ) returns ( PartitionQueryResponse )

クエリを並列実行するために使用できるパーティション カーソルを返すことによって、クエリをパーティション化します。返されたパーティション カーソルは、RunQuery でクエリ結果の開始点/終了点として使用できる分割ポイントです。

認可範囲

次の OAuth スコープのいずれかが必要です。

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

詳細については、 「認証の概要」を参照してください。

ロールバック

rpc Rollback( RollbackRequest ) returns ( Empty )

トランザクションをロールバックします。

認可範囲

次の OAuth スコープのいずれかが必要です。

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

詳細については、 「認証の概要」を参照してください。

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

詳細については、 「認証の概要」を参照してください。

ドキュメントの更新

rpc UpdateDocument( UpdateDocumentRequest ) returns ( Document )

ドキュメントを更新または挿入します。

認可範囲

次の OAuth スコープのいずれかが必要です。

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

詳細については、 「認証の概要」を参照してください。

書く

rpc Write( WriteRequest ) returns ( WriteResponse )

ドキュメントの更新と削除のバッチを順番にストリーミングします。このメソッドは、gRPC または WebChannel (REST ではない) 経由でのみ使用できます。

認可範囲

次の OAuth スコープのいずれかが必要です。

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

詳細については、 「認証の概要」を参照してください。

集計結果

Firestore 集計クエリからの単一バケットの結果。

結果ごとに異なるフィールドが存在する可能性があるドキュメント クエリとは異なり、 aggregate_fieldsのキーは集計クエリのすべての結果で同じです。

田畑
aggregate_fields

map<string, Value >

集計関数の結果 (例: COUNT(*) AS total_docs

キーは入力時に集計関数に割り当てられたalias 、このマップのサイズはクエリ内の集計関数の数と等しくなります。

配列値

配列値。

田畑
values[]

Value

配列内の値。

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次のいずれか 1 つだけです。
transaction

bytes

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

new_transaction

TransactionOptions

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

read_time

Timestamp

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

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

バッチGetDocumentsResponse

Firestore.BatchGetDocumentsのストリーミングされた応答。

田畑
transaction

bytes

このリクエストの一部として開始されたトランザクション。最初の応答でのみ設定され、 BatchGetDocumentsRequest.new_transaction要求で設定された場合にのみ設定されます。

read_time

Timestamp

文書が読まれた時刻。これは単調に増加する可能性があり、この場合、結果ストリーム内の以前のドキュメントは、read_time と今回のドキュメントの間で変更されていないことが保証されます。

共用体フィールドresult 。たった一つの結果。サーバーがトランザクションを返すだけの場合、これは空にすることができます。 result次のいずれか 1 つだけになります。
found

Document

要求された書類。

missing

string

要求されたが存在しないドキュメント名。形式は、 projects/{project_id}/databases/{database_id}/documents/{document_path}

バッチ書き込みリクエスト

Firestore.BatchWriteのリクエスト。

田畑
database

string

必須。データベース名。形式は、 projects/{project_id}/databases/{database_id}です。

writes[]

Write

適用する書き込み。

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

labels

map<string, string>

このバッチ書き込みに関連付けられたラベル。

バッチ書き込み応答

Firestore.BatchWriteからの応答。

田畑
write_results[]

WriteResult

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

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

status[]

Status

書き込みの適用ステータス。

この i 番目の書き込みステータスは、リクエスト内の i 番目の書き込みに対応します。

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計算します。 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

ビット シーケンスをエンコードするバイト。長さがゼロの場合もあります。

padding

int32

「パディング」として無視するbitmapの最後のバイトのビット数。 bitmapの長さがゼロの場合、この値は0でなければなりません。それ以外の場合、この値は 0 から 7 までの値でなければなりません。

ブルームフィルター

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

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

h1およびh2という名前のこれら 2 つのハッシュ値は、 i=0から始まる次の式を使用してhash_countハッシュ値を計算するために使用されます。

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

これらの結果の値は、ブルーム フィルターのビット数を法として取得され、指定されたエントリをテストするためのブルーム フィルターのビットが取得されます。

田畑
bits

BitSequence

ブルームフィルターデータ。

hash_count

int32

アルゴリズムによって使用されるハッシュの数。

コミットリクエスト

Firestore.Commitのリクエスト。

田畑
database

string

必須。データベース名。形式は、 projects/{project_id}/databases/{database_id}です。

writes[]

Write

適用する書き込み。

常にアトミックかつ順番に実行されます。

transaction

bytes

設定すると、このトランザクション内のすべての書き込みが適用され、コミットされます。

コミット応答

Firestore.Commitの応答。

田畑
write_results[]

WriteResult

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

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

commit_time

Timestamp

コミットが発生した時刻。 read_timeと同等以上の読み取りでは、コミットの効果が確認されることが保証されます。

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

返されるフィールド。設定されていない場合は、すべてのフィールドを返します。

このマスクに存在しないフィールドがドキュメントにある場合、そのフィールドは応答で返されません。

カーソル

クエリ結果セット内の位置。

田畑
values[]

Value

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

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

before

bool

位置が、クエリで定義された並べ替え順序を基準にして、指定された値の直前または直後である場合。

ドキュメントの削除リクエスト

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と比較することもできます。

文書変更

Document変更されました。

削除を含む複数回のwritesの結果、最終的にDocumentに新しい値が生成された可能性があります。

複数のターゲットが影響を受ける場合、同じ論理変更に対して複数の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以上。

ドキュメントマスク

ドキュメント上の一連のフィールド パス。ドキュメントの取得または更新操作をそのフィールドのサブセットに制限するために使用されます。これは、常にDocumentにスコープされ、 Valueの動的な性質が考慮されるため、標準のフィールド マスクとは異なります。

田畑
field_paths[]

string

マスク内のフィールド パスのリスト。フィールド パス構文のリファレンスについては、 Document.fieldsを参照してください。

文書の削除

Documentターゲットのビューから削除されました。

ドキュメントがターゲットに関連しなくなり、表示されなくなった場合に送信されます。サーバーがドキュメントの新しい値を送信できない場合は、DocumentDelete または DocumentChange の代わりに送信できます。

複数のターゲットが影響を受ける場合、同じ論理書き込みまたは削除に対して複数のDocumentRemoveメッセージが返されることがあります。

田畑
document

string

表示されなくなったDocumentのリソース名。

removed_target_ids[]

int32

以前にこのドキュメントと一致したターゲットのターゲット ID のセット。

read_time

Timestamp

削除が観察された読み取りタイムスタンプ。

変更/削除/削除のcommit_time以上。

ドキュメント変換

文書の変換。

田畑
document

string

変換するドキュメントの名前。

field_transforms[]

FieldTransform

ドキュメントのフィールドに順番に適用する変換のリスト。これは空であってはなりません。

フィールド変換

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

田畑
field_path

string

畑の道。フィールド パス構文のリファレンスについては、 Document.fieldsを参照してください。

ユニオンフィールドのtransform_type 。フィールドに適用する変換。 transform_type次のいずれか 1 つだけです。
set_to_server_value

ServerValue

フィールドを指定されたサーバー値に設定します。

increment

Value

指定された値をフィールドの現在の値に追加します。

これは整数または double 値である必要があります。フィールドが整数または倍精度でない場合、またはフィールドがまだ存在しない場合、変換によってフィールドは指定された値に設定されます。指定された値または現在のフィールド値のいずれかが double の場合、両方の値が double として解釈されます。 double の算術演算と double 値の表現は、IEEE 754 のセマンティクスに従います。正/負の整数のオーバーフローがある場合、フィールドは最大の大きさの正/負の整数に解決されます。

maximum

Value

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

これは整数または double 値である必要があります。フィールドが整数または倍精度でない場合、またはフィールドがまだ存在しない場合、変換によってフィールドは指定された値に設定されます。フィールドと入力値の型が混在している (つまり、1 つは整数、もう 1 つは double) 場合に最大演算が適用される場合、フィールドは大きい方のオペランドの型を受け取ります。オペランドが等しい場合 (例: 3 と 3.0)、フィールドは変更されません。 0、0.0、および -0.0 はすべてゼロです。ゼロの保存値とゼロの入力値の最大値は、常に保存された値になります。数値 x と NaN の最大値は NaN です。

minimum

Value

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

これは整数または double 値である必要があります。フィールドが整数または倍精度でない場合、またはフィールドがまだ存在しない場合、変換によりフィールドが入力値に設定されます。フィールドと入力値の型が混在している (つまり、1 つは整数、もう 1 つは double) 場合に最小演算が適用される場合、フィールドは小さい方のオペランドの型を受け取ります。オペランドが等しい場合 (例: 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値になります。

サーバー値

サーバーによって計算される値。

列挙型
SERVER_VALUE_UNSPECIFIED不特定。この値は使用してはなりません。
REQUEST_TIMEサーバーがリクエストを処理した時刻 (ミリ秒精度)。トランザクション内の複数のフィールド (同じまたは異なるドキュメント) で使用される場合、すべてのフィールドが同じサーバー タイムスタンプを取得します。

存在フィルター

指定されたターゲットに一致するすべてのドキュメントのダイジェスト。

田畑
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}形式で含まれます。

このブルーム フィルターは、クライアントが使用しないとみなされる場合、または計算または送信するには計算コストが高すぎる場合など、サーバーの裁量で省略される場合があります。クライアントは、このフィールドが存在する前に使用されていたロジックにフォールバックすることで、このフィールドが存在しないことを適切に処理する必要があります。つまり、クライアントのキャッシュ内のどのドキュメントが同期していないのかを特定するために、再開トークンを使用せずにターゲットを再追加します。

GetDocumentRequest

Firestore.GetDocumentのリクエスト。

田畑
name

string

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

mask

DocumentMask

返されるフィールド。設定されていない場合は、すべてのフィールドを返します。

このマスクに存在しないフィールドがドキュメントにある場合、そのフィールドは応答で返されません。

ユニオンフィールドのconsistency_selector 。このトランザクションの整合性モード。設定されていない場合は、デフォルトで強い整合性が設定されます。 consistency_selector次のいずれか 1 つだけです。
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次のいずれか 1 つだけです。
read_time

Timestamp

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

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

ListCollectionIdsResponse

Firestore.ListCollectionIdsからの応答。

田畑
collection_ids[]

string

コレクションID。

next_page_token

string

リストを継続するために使用できるページ トークン。

リストドキュメントリクエスト

Firestore.ListDocumentsのリクエスト。

田畑
parent

string

必須。親リソースの名前。形式は、 projects/{project_id}/databases/{database_id}/documentsまたはprojects/{project_id}/databases/{database_id}/documents/{document_path}

例: projects/my-project/databases/my-database/documentsまたはprojects/my-project/databases/my-database/documents/chatrooms/my-chatroom

collection_id

string

オプション。リストへの、 parentに対する相対的なコレクション ID。

例: chatroomsまたはmessages

これはオプションであり、指定しない場合、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_time 、またはupdate_timeが設定されていません。

show_missingを含むリクエストでは、 whereまたはorder_byを指定できない場合があります。

ユニオンフィールドのconsistency_selector 。このトランザクションの整合性モード。設定されていない場合は、デフォルトで強い整合性が設定されます。 consistency_selector次のいずれか 1 つだけです。
transaction

bytes

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

read_time

Timestamp

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

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

リストドキュメント応答

Firestore.ListDocumentsの応答。

田畑
documents[]

Document

書類が見つかりました。

next_page_token

string

ドキュメントの次のページを取得するためのトークン。

このフィールドを省略した場合、後続のページはありません。

リッスンリクエスト

Firestore.Listenのリクエスト

田畑
database

string

必須。データベース名。形式は、 projects/{project_id}/databases/{database_id}です。

labels

map<string, string>

このターゲットに関連付けられたラベルが変更されます。

ユニオンフィールドtarget_change 。サポート対象が変わります。 target_change次のいずれか 1 つだけです。
add_target

Target

このストリームに追加するターゲット。

remove_target

int32

このストリームから削除するターゲットの ID。

リッスンレスポンス

Firestore.Listenの応答。

田畑
共用体フィールドresponse_type 。サポートされている応答。 response_type次のいずれか 1 つだけです。
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 を使用した後続の 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次のいずれか 1 つだけです。
structured_query

StructuredQuery

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

ユニオンフィールドのconsistency_selector 。このリクエストの整合性モード。設定されていない場合は、デフォルトで強い整合性が設定されます。 consistency_selector次のいずれか 1 つだけです。
read_time

Timestamp

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

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

PartitionQueryResponse

Firestore.PartitionQueryの応答。

田畑
partitions[]

Cursor

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

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

  • クエリ、end_at A
  • クエリ、start_at A、end_at B
  • クエリ、start_at B

空の結果は、クエリの結果が少なすぎるためパーティション化できないか、クエリがまだパーティション化をサポートしていないことを示している可能性があります。

next_page_token

string

PartitionQuery リクエストのpartition_countで指定された数までの、追加の結果セットをリクエストするために使用できるページ トークン。空白の場合、それ以上の結果はありません。

前提条件

ドキュメントの前提条件。条件付き操作に使用されます。

田畑
ユニオンフィールドのcondition_type 。前提条件のタイプ。 condition_type次のいずれか 1 つだけです。
exists

bool

trueに設定すると、ターゲット ドキュメントが存在する必要があります。 falseに設定すると、ターゲット ドキュメントが存在してはなりません。

update_time

Timestamp

設定する場合、ターゲット ドキュメントが存在し、その時点で最後に更新されている必要があります。タイムスタンプはマイクロ秒に揃える必要があります。

ロールバックリクエスト

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

ユニオンフィールドquery_type 。実行するクエリ。 query_type次のいずれか 1 つだけです。
structured_aggregation_query

StructuredAggregationQuery

集計クエリ。

ユニオンフィールドのconsistency_selector 。クエリの整合性モードは、デフォルトで強い整合性になります。 consistency_selector次のいずれか 1 つだけです。
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_timeを含む応答が送信されますが、 resultありません。これはクエリが実行された時刻を表します。

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

ユニオンフィールドquery_type 。実行するクエリ。 query_type次のいずれか 1 つだけです。
structured_query

StructuredQuery

構造化されたクエリ。

ユニオンフィールドのconsistency_selector 。このトランザクションの整合性モード。設定されていない場合は、デフォルトで強い整合性が設定されます。 consistency_selector次のいずれか 1 つだけです。
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_timeの応答とdocumentが送信されません。これは、クエリが実行された時間を表します。

skipped_results

int32

最後の応答と現在の応答の間のオフセットのためにスキップされた結果の数。

ユニオンフィールドcontinuation_selector 。クエリの継続モード。存在する場合、現在のクエリ応答ストリームが終了したことを示します。これは、 documentの有無にかかわらず設定できますが、設定すると、結果は返されません。 continuation_selector次のいずれかになります。
done

bool

存在する場合、Firestoreはリクエストを完全に完了し、これ以上のドキュメントは返されません。

構造編集クエリ

StructuredQuery介して集約を実行するためのFirestoreクエリ。

田畑
aggregations[]

Aggregation

オプション。 structured_queryの結果に適用する一連の集約。

必要:

  • クエリごとに最小1および最大5つの集約。
ユニオンフィールドquery_type 。集約するためのベースクエリ。 query_type次のいずれかになります。
structured_query

StructuredQuery

ネストされた構造化クエリ。

集計

単一の結果を生成する集計を定義します。

田畑
alias

string

オプション。集約の結果を格納するためのフィールドのオプション名。

提供されていない場合、FirestoreはFormat field_<incremental_id++>に続いてデフォルト名を選択します。例えば:

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

は次のようになります:

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

必要:

  • すべての集約エイリアスにわたってユニークでなければなりません。
  • document field name制限に準拠しています。
ユニオンフィールドoperator 。実行するための集約のタイプ、必須。 operator次のいずれかになることができます。
count

Count

カウントアグリゲーター。

sum

Sum

合計アグリゲーター。

avg

Avg

平均的なアグリゲーター。

平均

要求されたフィールドの値の平均。

  • 数値のみが集約されます。 NULLを含むすべての非数値値がスキップされます。

  • 集約値にNaNが含まれている場合、 NaNを返します。 Infinity MathはIEEE-754基準に従います。

  • 集約値セットが空の場合、 NULLを返します。

  • 常に結果をダブルとして返します。

田畑
field

FieldReference

集約するフィールド。

カウント

クエリに一致するドキュメントのカウント。

COUNT(*)集約関数はドキュメント全体で動作するため、フィールド参照は必要ありません。

田畑
up_to

Int64Value

オプション。カウントするドキュメントの最大数に対するオプションの制約。

これにより、スキャンし、レイテンシとコストを制限するためのドキュメントの数に上限を設定する方法が提供されます。

不特定は、拘束されていないと解釈されます。

高レベルの例:

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

必要:

  • 存在する場合、ゼロより大きくなければなりません。

要求されたフィールドの値の合計。

  • 数値のみが集約されます。 NULLを含むすべての非数値値がスキップされます。

  • 集約値にNaNが含まれている場合、 NaNを返します。 Infinity MathはIEEE-754基準に従います。

  • 集計値セットが空の場合、0を返します。

  • すべての集約された数値が整数であり、合計結果がオーバーフローしない場合、64ビット整数を返します。それ以外の場合、結果はダブルとして返されます。すべての集約値が整数であっても、64ビットの署名整数内に収まらない場合、結果はダブルとして返されることに注意してください。これが発生すると、返された値は精度を失います。

  • アンダーフローが発生すると、浮動小数点凝集は非決定的です。これは、同じクエリを繰り返し実行することなく、基礎となる値を変更せずに実行すると、毎回わずかに異なる結果が生じる可能性があることを意味します。そのような場合、値は浮動小数点数に整数として保存する必要があります。

田畑
field

FieldReference

集約するフィールド。

StructuredQuery

ファイヤーストアクエリ。

田畑
select

Projection

返品するフィールドのオプションのサブセット。

これは、クエリから返されたドキュメント上のDocumentMaskとして機能します。設定されていない場合、発信者はすべてのフィールドが返されることを望んでいると仮定します。

from[]

CollectionSelector

クエリするコレクション。

where

Filter

適用するフィルター。

order_by[]

Order

クエリ結果に適用する順序。

Firestoreを使用すると、発信者は完全な注文、部分的な注文、またはまったく注文しないことを可能にします。すべての場合において、Firestoreは次のルールを通じて安定した注文を保証します。

  • order_by不平等フィルターで使用されるすべてのフィールドを参照する必要があります。
  • order_byに必要なが、まだ存在していないすべてのフィールドは、フィールド名の辞書的な注文に追加されています。
  • __name__の注文が指定されていない場合、デフォルトで追加されます。

フィールドには、指定された最後の順序と同じ並べ替え方向、または命令が指定されていない場合は「昇順」で追加されます。例えば:

  • ORDER BY a ASC, __name__ ASC ORDER BY a
  • 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 LIMIT START AT 、& END ATで指定された制約の後に適用されます。

必要:

  • 指定した場合、値はゼロ以上でなければなりません。
limit

Int32Value

返される結果の最大数。

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

必要:

  • 指定した場合、値はゼロ以上でなければなりません。

CollectionSelector

messages as m1などのコレクションの選択。

田畑
collection_id

string

コレクションID。設定すると、このIDでコレクションのみを選択します。

all_descendants

bool

FALSEの場合、contering 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よりも少ない。

必要:

  • その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_EQUALNOT_INIS_NOT_NULL 、またはIS_NOT_NANありません。
  • そのfield order_byで最初に来ます。
ARRAY_CONTAINS指定されたfield指定されたvalueを含む配列です。
IN

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

必要:

  • そのvalue 、分離制限を条件として、空ではないArrayValueです。
  • NO NOT_INフィルターは同じクエリでフィルターをフィルターします。
ARRAY_CONTAINS_ANY

指定されたfield指定された配列内の値のいずれかを含む配列です。

必要:

  • そのvalue 、分離制限を条件として、空ではないArrayValueです。
  • 同じ分離内に他のARRAY_CONTAINS_ANYフィルターはありません。
  • NO NOT_INフィルターは同じクエリでフィルターをフィルターします。
NOT_IN

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

必要:

  • そのvalueせいぜい10の値を持つ空ではないArrayValueです。
  • 他に、 OR INARRAY_CONTAINS_ANYNOT_INNOT_EQUALIS_NOT_NULL 、またはIS_NOT_NAN
  • そのfield order_byで最初に来ます。

fieldreference

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

田畑
field_path

string

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

必要:

  • 各セグメントがdocument field nameために適合するドット削除( . )のセグメントの文字列である必要があります。

フィルター

フィルター。

田畑
ユニオンフィールドfilter_type 。フィルターのタイプ。 filter_type次のいずれかの1つにすぎません。
composite_filter

CompositeFilter

複合フィルター。

field_filter

FieldFilter

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

unary_filter

UnaryFilter

ちょうど1つの引数を取るフィルター。

注文

フィールドでの注文。

田畑
field

FieldReference

注文するフィールド。

direction

Direction

注文する方向。デフォルトはASCENDINGです。

投影

ドキュメントのフィールドが返される予測。

田畑
fields[]

FieldReference

返すフィールド。

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

UniaryFilter

単一のオペランドを備えたフィルター。

田畑
op

Operator

応募するための単位オペレーター。

ユニオンフィールドoperand_type 。フィルターへの引数。 operand_type次のいずれかのいずれかになります。
field

FieldReference

オペレーターを適用するフィールド。

オペレーター

単一のオペレーター。

列挙型
OPERATOR_UNSPECIFIED不特定。この値を使用してはなりません。
IS_NAN指定されたfieldNaNに等しくなります。
IS_NULL指定されたfieldNULLに等しくなります。
IS_NOT_NAN

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

必要:

  • 他のNOT_EQUALNOT_INIS_NOT_NULL 、またはIS_NOT_NANありません。
  • そのfield order_byで最初に来ます。
IS_NOT_NULL

指定されたfield NULLに等しくありません。

必要:

  • 単一のNOT_EQUALNOT_INIS_NOT_NULL 、またはIS_NOT_NAN
  • そのfield order_byで最初に来ます。

目標

聴くためのドキュメントのセットの仕様。

田畑
target_id

int32

ストリーム上のターゲットを識別するターゲットID。正の数と非ゼロでなければなりません。

target_idが0(または不特定)の場合、サーバーはこのターゲットにIDを割り当て、 TargetChange::ADDイベントでそれを返します。 target_id=0のターゲットが追加されると、後続のターゲットにはすべてtarget_id=0も必要です。 target_id != 0を使用したAddTargetリクエストがtarget_id=0のターゲットが追加された後にサーバーに送信された場合、サーバーはすぐにTargetChange::Removeイベントで応答を送信します。

クライアントがIDなしで複数のAddTargetリクエストを送信する場合、 TargetChage.target_idsで返されるIDの順序は未定義です。したがって、クライアントは、サーバーに頼ってそれを割り当てるのではなく、ターゲットIDを提供する必要があります。

target_idがゼロ以外の場合、同じIDを持つこのストリームに既存のアクティブターゲットを存在してはなりません。

once

bool

ターゲットを削除する必要がある場合は、最新かつ一貫しています。

expected_count

Int32Value

履歴書トークンまたは読み取り時間で最後にクエリに一致したドキュメントの数。

この値は、 resume_typeが提供される場合にのみ関連します。この値は存在し、ゼロを超えるゼロは、クライアントがExistenceFilter.unchanged_names応答に含めることを望んでいることを示しています。

ユニオンフィールドtarget_type 。聞くためのターゲットのタイプ。 target_type次のいずれかになります。
query

QueryTarget

クエリで指定されたターゲット。

documents

DocumentsTarget

ドキュメント名のセットで指定されたターゲット。

ユニオンフィールドresume_type 。いつ聞き始めるか。

指定されている場合、 resume_tokenまたはread_time返された後に更新された一致するドキュメントのみが返されます。それ以外の場合、すべての一致するドキュメントは、その後の変更の前に返されます。 resume_type次のいずれかの1つにすぎません。

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 (ターゲット_IDが一貫したスナップショットにない場合は省略)。

ストリームは、ストリーム全体が新しい一貫したスナップショットに到達するたびに、 target_ids空になってread_timeを送信することが保証されています。追加、電流、リセットメッセージは、(最終的に)新しい一貫したスナップショットになるように保証されます(NO_CHANGEと削除メッセージはそうではありません)。

特定のストリームの場合、 read_timeは単調に増加することが保証されています。

TargetChangeType

変化の種類。

列挙型
NO_CHANGE変更は発生していません。更新されたresume_tokenを送信するためにのみ使用されます。
ADDターゲットが追加されました。
REMOVEターゲットが削除されました。
CURRENT

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

これは、ターゲットが追加された時間以上のread_timeの後またはread_timeで送信されます。

リスナーは、読み取り後のセマンティクスが望まれる場合、この変更を待つことができます。

RESET

ターゲットはリセットされており、その後の変更でターゲットの新しい初期状態が返されます。

初期状態が完了すると、 CURRENTが以前にCURRENTあることが示されていても、電流が返されます。

TransactionOptions

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

田畑
ユニオンフィールドmode 。トランザクションのモード。 mode次のいずれかのいずれかになります。
read_only

ReadOnly

トランザクションは、読み取り操作にのみ使用できます。

read_write

ReadWrite

トランザクションは、読み取り操作と書き込み操作の両方に使用できます。

読み取り専用

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

田畑
ユニオンフィールドのconsistency_selector 。このトランザクションの一貫性モード。設定されていない場合、デフォルトは強力な一貫性になります。 consistency_selector次のいずれかになります。
read_time

Timestamp

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

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

ヌル値。

boolean_value

bool

ブール値。

integer_value

int64

整数値。

double_value

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

地球の表面のポイントを表すジオポイント値。

array_value

ArrayValue

配列値。

別の配列値を直接含めることはできませんが、別の配列を含むマップを含めることができます。

map_value

MapValue

マップ値。

書く

ドキュメントに書く。

田畑
update_mask

DocumentMask

この書き込みで更新するフィールド。

このフィールドは、操作がupdate場合にのみ設定できます。マスクがupdate用に設定されておらず、ドキュメントが存在する場合、既存のデータは上書きされます。マスクが設定され、サーバー上のドキュメントにマスクでカバーされていないフィールドがある場合、それらは変更されません。マスクで参照されているフィールドは、入力ドキュメントに存在しないが、サーバー上のドキュメントから削除されます。このマスクのフィールドパスには、予約済みのフィールド名が含まれていない必要があります。

update_transforms[]

FieldTransform

更新後に実行する変換。

このフィールドは、操作がupdate場合にのみ設定できます。存在する場合、この書き込みはupdateを実行し、同じドキュメントに原子的かつ順番にtransformに相当します。

current_document

Precondition

ドキュメントのオプションの前提条件。

これが設定され、ターゲットドキュメントで満たされない場合、書き込みは失敗します。

ユニオンフィールドoperation 。実行する操作。 operation次のいずれかになります。
update

Document

書くドキュメント。

delete

string

削除するドキュメント名。形式: projects/{project_id}/databases/{database_id}/documents/{document_path}

transform

DocumentTransform

ドキュメントに変換を適用します。

Writerequest

Firestore.Writeのリクエスト。

最初の要求は、ストリームを作成するか、トークンから既存の要求を再開します。

新しいストリームを作成するとき、サーバーは次のリクエストで使用するために、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>

この書き込み要求に関連付けられたラベル。

writereponse

Firestore.Writeの応答。

田畑
stream_id

string

ストリームのID。新しいストリームが作成されたときの最初のメッセージにのみ設定されます。

stream_token

bytes

ストリーム内のこの応答の位置を表すトークン。これは、クライアントがこの時点でストリームを再開するために使用できます。

このフィールドは常に設定されています。

write_results[]

WriteResult

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

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

commit_time

Timestamp

コミットが発生した時間。等しいまたはそれ以上のread_timeは、書き込みの効果を見るために保証されています。

writeresult

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

田畑
update_time

Timestamp

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

書き込みが実際にドキュメントを変更しなかった場合、これは以前のupdate_timeになります。

transform_results[]

Value

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