Package google.firestore.admin.v1beta2

索引

Firestore 管理員

作業是由服務 FirestoreAdmin 建立,但可透過服務 google.longrunning.Operations 存取。

CreateIndex

rpc CreateIndex(CreateIndexRequest) returns (Operation)

建立複合式索引。這會傳回 google.longrunning.Operation,可用於追蹤建立作業的狀態。該作業的中繼資料會是 IndexOperationMetadata 類型。

授權範圍

需要下列其中一種 OAuth 範圍:

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

詳情請參閱驗證總覽一文。

DeleteIndex

rpc DeleteIndex(DeleteIndexRequest) returns (Empty)

刪除複合式索引。

授權範圍

需要下列其中一種 OAuth 範圍:

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

詳情請參閱驗證總覽一文。

匯出文件

rpc ExportDocuments(ExportDocumentsRequest) returns (Operation)

這個外掛程式能將 Google Cloud Firestore 中全部或部分文件的副本匯出至其他儲存系統,例如 Google Cloud Storage。最近的文件更新可能不會反映在匯出作業中。匯出作業會在背景中執行,並透過建立的 Operation 資源監控及管理進度。執行匯出作業的輸出內容後,才能使用這些輸出內容。如果匯出作業在完成前遭到取消,可能會導致部分資料無法在 Google Cloud Storage 中留存。

授權範圍

需要下列其中一種 OAuth 範圍:

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

詳情請參閱驗證總覽一文。

取得欄位

rpc GetField(GetFieldRequest) returns (Field)

取得欄位的中繼資料和設定。

授權範圍

需要下列其中一種 OAuth 範圍:

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

詳情請參閱驗證總覽一文。

取得索引

rpc GetIndex(GetIndexRequest) returns (Index)

取得複合式索引。

授權範圍

需要下列其中一種 OAuth 範圍:

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

詳情請參閱驗證總覽一文。

匯入文件

rpc ImportDocuments(ImportDocumentsRequest) returns (Operation)

將文件匯入 Google Cloud Firestore。名稱相同的現有文件將遭到覆寫。匯入作業會在背景中進行,並透過建立的 Operation 資源監控及管理其進度。如果 ImportDocuments 作業已取消,可能是因為部分資料已匯入 Cloud Firestore。

授權範圍

需要下列其中一種 OAuth 範圍:

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

詳情請參閱驗證總覽一文。

列出欄位

rpc ListFields(ListFieldsRequest) returns (ListFieldsResponse)

列出這個資料庫的欄位設定和中繼資料。

目前,FirestoreAdmin.ListFields 僅支援已明確覆寫的資訊欄位。如要發出這項查詢,請呼叫 FirestoreAdmin.ListFields 並將篩選器設為 indexConfig.usesAncestorConfig:false

授權範圍

需要下列其中一種 OAuth 範圍:

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

詳情請參閱驗證總覽一文。

清單索引

rpc ListIndexes(ListIndexesRequest) returns (ListIndexesResponse)

列出複合式索引。

授權範圍

需要下列其中一種 OAuth 範圍:

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

詳情請參閱驗證總覽一文。

更新欄位

rpc UpdateField(UpdateFieldRequest) returns (Operation)

更新欄位設定。目前,欄位更新僅適用於單一欄位索引設定。不過,呼叫 FirestoreAdmin.UpdateField 時應提供欄位遮罩,避免變更呼叫端所不知道的任何設定。欄位遮罩應指定為:{ paths: "index_config" }

這項呼叫會傳回 google.longrunning.Operation,可用於追蹤欄位更新狀態。該作業的中繼資料會是 FieldOperationMetadata 類型。

如要為資料庫進行預設欄位設定,請使用特殊的 Field 並加上資源名稱:projects/{project_id}/databases/{database_id}/collectionGroups/__default__/fields/*

授權範圍

需要下列其中一種 OAuth 範圍:

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

詳情請參閱驗證總覽一文。

建立索引要求

FirestoreAdmin.CreateIndex 的要求。

欄位
parent

string

表單 projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id} 的父項名稱

index

Index

要建立的複合式索引。

刪除索引要求

FirestoreAdmin.DeleteIndex 的要求。

欄位
name

string

表單名稱 projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}

ExportDocumentsMetadata

FirestoreAdmin.ExportDocuments」中「google.longrunning.Operation」搜尋結果的中繼資料。

欄位
start_time

Timestamp

這項作業開始的時間。

end_time

Timestamp

此作業完成的時間。如果作業仍在進行中,則會未設定。

operation_state

OperationState

匯出作業的狀態。

progress_documents

Progress

這項作業的進度,以文件中。

progress_bytes

Progress

這項作業的進度 (以位元組為單位)。

collection_ids[]

string

要匯出的集合 ID。

output_uri_prefix

string

實體的匯出目的地。

匯出文件要求

FirestoreAdmin.ExportDocuments 的要求。

欄位
name

string

要匯出的資料庫。格式應該為:projects/{project_id}/databases/{database_id}

collection_ids[]

string

要匯出的集合 ID。未指定代表所有集合。

output_uri_prefix

string

輸出 URI。目前僅支援採用以下格式的 Google Cloud Storage URI:gs://BUCKET_NAME[/NAMESPACE_PATH],其中 BUCKET_NAME 是 Google Cloud Storage 值區的名稱,NAMESPACE_PATH 是選用的 Google Cloud Storage 命名空間路徑。選擇名稱時,請務必參考 Google Cloud Storage 命名規範:https://cloud.google.com/storage/docs/naming。如果 URI 是值區 (不含命名空間路徑),系統會根據開始時間產生前置字串。

ExportDocumentsResponse

透過 google.longrunning.Operation 回應欄位傳回。

欄位
output_uri_prefix

string

輸出檔案的位置。這項作業可以在作業成功完成後,開始匯入 Cloud Firestore (這項專案或其他專案)。

欄位

代表資料庫中的單一欄位。

欄位會按照「集合群組」分組,代表資料庫中所有 ID 相同的集合。

欄位
name

string

表單 projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_path} 的欄位名稱

欄位路徑可以是簡單的欄位名稱,例如address 或 map_value 中的欄位路徑,例如address.city 或特殊欄位路徑唯一有效的特殊欄位是 *,代表任何欄位。

欄位路徑可以使用 (backtick). The only character that needs to be escaped within a quoted field path is the backtick character itself, escaped using a backslash. Special characters in field paths that must be quoted include:*,., ``` (backtick),[,]` 和任何 ASCII 符號字元來引用。

例如:(注意:此處的註解是以 Markdown 語法編寫,因此使用另一層反引號來代表程式碼區塊) \address.city`represents a field namedaddress.city, not the map key cityin the fieldaddress. `*`represents a field named*`,不是任何欄位。

特殊的 Field 包含所有欄位的預設索引設定。這個欄位的資源名稱為:這個 Field 中定義的 projects/{project_id}/databases/{database_id}/collectionGroups/__default__/fields/* 索引,會套用至所有沒有 Field 索引設定的欄位。

index_config

IndexConfig

這個欄位的索引設定。如未設定,欄位索引功能會還原為 ancestor_field 定義的設定。如要明確移除這個欄位的所有索引,請指定內含空白索引清單的索引設定。

索引設定

這個欄位的索引設定。

欄位
indexes[]

Index

這個欄位支援的索引。

uses_ancestor_config

bool

僅供輸出。如果設為 true,Field 的索引設定是根據 ancestor_field 指定的設定進行設置。如果設為 False,系統會明確定義 Field 的索引設定。

ancestor_field

string

僅供輸出。指定 Field 的資源名稱,該資源名稱可供設定這個欄位的索引設定 (當 uses_ancestor_config 為 true 時);如果這個欄位沒有索引設定 (當 uses_ancestor_config 為 false 時),則設定這個欄位。

reverting

bool

僅在輸出為 true 時,Field 的索引設定正在還原中。完成後,索引設定會轉換至與 ancestor_field 指定欄位相同的狀態,此時 uses_ancestor_config 會是 truereverting 會是 false

FieldOperationMetadata

FirestoreAdmin.UpdateField」中「google.longrunning.Operation」搜尋結果的中繼資料。

欄位
start_time

Timestamp

這項作業開始的時間。

end_time

Timestamp

此作業完成的時間。如果作業仍在進行中,則會未設定。

field

string

這項作業所執行的欄位資源。例如:projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_path}

index_config_deltas[]

IndexConfigDelta

IndexConfigDelta 清單,說明這項作業的意圖。

state

OperationState

作業狀態。

document_progress

Progress

這項作業的進度,以文件中。

bytes_progress

Progress

這項作業的進度 (以位元組為單位)。

IndexConfig Delta 值

索引設定變更的相關資訊。

欄位
change_type

ChangeType

指定索引的變更方式。

index

Index

正在變更的索引。

ChangeType

指定索引的變更方式。

列舉
CHANGE_TYPE_UNSPECIFIED 未指定或未知的變更類型。
ADD 正在新增單一欄位索引。
REMOVE 正在移除單一欄位索引。

取得取得欄位要求

FirestoreAdmin.GetField 的要求。

欄位
name

string

表單名稱 projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_id}

取得索引要求

FirestoreAdmin.GetIndex 的要求。

欄位
name

string

表單名稱 projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}

ImportDocumentsMetadata

FirestoreAdmin.ImportDocuments」中「google.longrunning.Operation」搜尋結果的中繼資料。

欄位
start_time

Timestamp

這項作業開始的時間。

end_time

Timestamp

此作業完成的時間。如果作業仍在進行中,則會未設定。

operation_state

OperationState

匯入作業的狀態。

progress_documents

Progress

這項作業的進度,以文件中。

progress_bytes

Progress

這項作業的進度 (以位元組為單位)。

collection_ids[]

string

要匯入的集合 ID。

input_uri_prefix

string

匯入文件的所在位置。

匯入文件要求

FirestoreAdmin.ImportDocuments 的要求。

欄位
name

string

要匯入的目標資料庫。格式應該為:projects/{project_id}/databases/{database_id}

collection_ids[]

string

要匯入的集合 ID。未指定表示匯入項目中包含的所有集合。

input_uri_prefix

string

匯出檔案的位置。這個值必須符合成功匯出的 ExportDocumentsResponse 的 output_uri_prefix。請參閱:google.firestore.admin.v1beta2.ExportDocumentsResponse.output_uri_prefix

索引

有了 Cloud Firestore 索引,您就能針對資料庫中的文件進行簡單複雜的查詢。

欄位
name

string

僅供輸出。這個索引的伺服器定義名稱。複合式索引的名稱格式為: projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{composite_index_id} 如果是單一欄位索引,此欄位將為空白。

query_scope

QueryScope

如果索引設有集合查詢範圍,則可在查詢時指定特定文件子項且集合 ID 相同的集合,對集合執行查詢。

如果索引指定了集合群組查詢範圍,則可在查詢時指定特定文件,且集合 ID 與這個索引相同的所有集合,對這些集合執行查詢。

fields[]

IndexField

此索引支援的欄位。

如果是複合式索引,這個欄位一律為 2 個以上的欄位。最後一個欄位項目一律為欄位路徑 __name__。如果在建立時未指定 __name__ 為最後一個欄位,系統會自動新增該欄位,並將該欄位的方向與最後一個定義欄位相同。如果複合式索引的最後一個欄位並非方向性欄位,__name__ 就會排序 ASCENDING (除非已明確指定)。

如為單一欄位索引,這個值一律為一個項目,且欄位路徑會與關聯欄位的欄位路徑相同。

state

State

僅供輸出。索引的提供狀態。

索引欄位

索引中的欄位。欄位_path 說明已建立索引的欄位,value_mode 說明欄位值建立索引的方式。

欄位
field_path

string

可以是 name。如為單一欄位索引,這個值必須與欄位名稱相符,否則可能會省略。

聯集欄位 value_mode。欄位值編入索引的方式。value_mode 只能採用下列其中一種設定:
order

Order

表示這個欄位支援按照指定的順序排序,或使用 =、<、<=、>、>= 進行比較。

array_config

ArrayConfig

表示這個欄位支援對 array_value 作業。

ArrayConfig

支援的陣列值設定。

列舉
ARRAY_CONFIG_UNSPECIFIED 這個索引不支援其他陣列查詢。
CONTAINS 索引支援陣列包含查詢。

順序

支援的排序。

列舉
ORDER_UNSPECIFIED 未指定順序。選項無效。
ASCENDING 欄位會依欄位值遞增排序。
DESCENDING 欄位值會依欄位值遞減排序。

QueryScope

查詢範圍定義了查詢的執行範圍。這項資訊是透過 StructuredQuery 的 from 欄位指定。

列舉
QUERY_SCOPE_UNSPECIFIED 未指定查詢範圍。選項無效。
COLLECTION 如果索引指定了集合查詢範圍,那麼只要集合是特定文件的子項 (在查詢時指定),且具有索引指定的集合 ID 時,就可以對集合執行查詢。
COLLECTION_GROUP 如為指定集合群組查詢範圍的索引,則可對具有索引指定集合 ID 的所有集合執行查詢。

狀態

索引的狀態。在建立索引期間,索引會處於 CREATING 狀態。如果索引建立成功,就會轉換為 READY 狀態。如果索引建立作業發生問題,索引會轉換為 NEEDS_REPAIR 狀態。

列舉
STATE_UNSPECIFIED 未指定狀態。
CREATING 正在建立索引。索引有一個執行中的長時間執行作業。寫入文件時,索引會更新。可能存在部分索引資料。
READY 索引已可供使用。寫入文件時,索引會更新。索引會完全填入套用該索引的所有已儲存文件。
NEEDS_REPAIR 正在建立索引,但發生錯誤。索引沒有執行中的長時間執行作業,且最近完成的長時間執行作業失敗。寫入文件時,索引不會更新。可能存在部分索引資料。請使用 google.longrunning.Operations API,判斷上次嘗試建立這個索引的作業失敗的原因,然後重新建立索引。

IndexOperationMetadata

FirestoreAdmin.CreateIndex」中「google.longrunning.Operation」搜尋結果的中繼資料。

欄位
start_time

Timestamp

這項作業開始的時間。

end_time

Timestamp

此作業完成的時間。如果作業仍在進行中,則會未設定。

index

string

執行這項作業的索引資源。例如:projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}

state

OperationState

作業狀態。

progress_documents

Progress

這項作業的進度,以文件中。

progress_bytes

Progress

這項作業的進度 (以位元組為單位)。

列出欄位要求

FirestoreAdmin.ListFields 的要求。

欄位
parent

string

表單 projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id} 的父項名稱

filter

string

要套用至清單結果的篩選器。目前,FirestoreAdmin.ListFields 僅支援已明確覆寫的資訊欄位。如要發出這項查詢,請呼叫 FirestoreAdmin.ListFields 並將篩選器設為 indexConfig.usesAncestorConfig:false

page_size

int32

要傳回的結果數。

page_token

string

頁面權杖,從先前的 FirestoreAdmin.ListFields 呼叫傳回,可用於取得下一頁的結果。

列出欄位回應

FirestoreAdmin.ListFields 的回應。

欄位
fields[]

Field

要求的欄位。

next_page_token

string

網頁權杖,可用於要求其他結果頁面。如果空白,表示這是最後一頁。

列出索引要求

FirestoreAdmin.ListIndexes 的要求。

欄位
parent

string

表單 projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id} 的父項名稱

filter

string

要套用至清單結果的篩選器。

page_size

int32

要傳回的結果數。

page_token

string

頁面權杖,從先前的 FirestoreAdmin.ListIndexes 呼叫傳回,可用於取得下一頁的結果。

列出索引回應

FirestoreAdmin.ListIndexes 的回應。

欄位
indexes[]

Index

要求的索引。

next_page_token

string

網頁權杖,可用於要求其他結果頁面。如果空白,表示這是最後一頁。

OperationState

說明作業的狀態。

列舉
OPERATION_STATE_UNSPECIFIED 未指定。
INITIALIZING 正在準備處理要求。
PROCESSING 正在處理要求。
CANCELLING 當使用者呼叫 google.longrunning.Operations.CancelOperation 後,要求正在取消。
FINALIZING 要求已處理完畢,並且正在進入最終階段。
SUCCESSFUL 已成功完成要求。
FAILED 要求已處理完畢,但發生錯誤。
CANCELLED 使用者呼叫 google.longrunning.Operations.CancelOperation 後,要求已取消。

進度

說明作業的進度。作業單位屬於一般性,必須根據使用 Progress 的位置解譯。

欄位
estimated_work

int64

預估工作量。

completed_work

int64

已完成的工作量。

更新欄位要求

FirestoreAdmin.UpdateField 的要求。

欄位
field

Field

要更新的欄位。

update_mask

FieldMask

相對於欄位的遮罩。如果指定此選項,則只有這個欄位_mask 指定的設定會更新於欄位中。