Package google.firestore.admin.v1

索引

Firestore 管理員

Cloud Firestore Admin API。

這個 API 提供多項 Cloud Firestore 管理服務。

專案、資料庫、命名空間、集合、集合群組和文件都會按照 Google Cloud Firestore API 中的定義使用。

作業:作業代表在背景執行的作業。

索引服務會管理 Cloud Firestore 索引。

索引建立作業會以非同步方式執行。系統會為每個這類非同步作業建立作業資源。您可以透過 Operation 資源查詢作業狀態 (包括發生任何錯誤)。

「作業」集合提供對指定專案 (包括任何進行中的作業) 的操作記錄。作業不會直接建立,而是會透過其他集合或資源上的呼叫。

已完成的作業可能會遭到刪除,進而不再列於作業集合中。系統會在 30 天後收集垃圾。根據預設,ListOperations 只會傳回進行中和失敗的作業。如要列出已完成的作業,請使用篩選器 done: true 發出 ListOperations 要求。

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

建立備份排程

rpc CreateBackupSchedule(CreateBackupScheduleRequest) returns (BackupSchedule)

在資料庫中建立備份排程。一個資料庫最多只能設定兩個備份排程,分別是每日備份時間表和每週備份時間表。

授權範圍

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

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

詳情請參閱驗證總覽

建立資料庫

rpc CreateDatabase(CreateDatabaseRequest) returns (Operation)

建立資料庫。

授權範圍

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

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

詳情請參閱驗證總覽

CreateIndex

rpc CreateIndex(CreateIndexRequest) returns (Operation)

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

授權範圍

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

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

詳情請參閱驗證總覽

刪除備份

rpc DeleteBackup(DeleteBackupRequest) returns (Empty)

刪除備份。

授權範圍

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

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

詳情請參閱驗證總覽

刪除備份排程

rpc DeleteBackupSchedule(DeleteBackupScheduleRequest) returns (Empty)

刪除備份排程。

授權範圍

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

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

詳情請參閱驗證總覽

刪除資料庫

rpc DeleteDatabase(DeleteDatabaseRequest) returns (Operation)

刪除資料庫。

授權範圍

需要下列其中一種 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 中。

如要進一步瞭解匯出行為和輸出格式,請參閱:https://cloud.google.com/firestore/docs/manage-data/export-import

授權範圍

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

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

詳情請參閱驗證總覽

取得備份

rpc GetBackup(GetBackupRequest) returns (Backup)

取得備份相關資訊。

授權範圍

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

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

詳情請參閱驗證總覽

取得備份排程

rpc GetBackupSchedule(GetBackupScheduleRequest) returns (BackupSchedule)

取得備份排程的相關資訊。

授權範圍

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

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

詳情請參閱驗證總覽

取得資料庫

rpc GetDatabase(GetDatabaseRequest) returns (Database)

取得資料庫相關資訊。

授權範圍

需要下列其中一種 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 ListBackupSchedules(ListBackupSchedulesRequest) returns (ListBackupSchedulesResponse)

列出備份排程。

授權範圍

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

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

詳情請參閱驗證總覽

列出備份

rpc ListBackups(ListBackupsRequest) returns (ListBackupsResponse)

列出所有備份。

授權範圍

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

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

詳情請參閱驗證總覽

列出資料庫

rpc ListDatabases(ListDatabasesRequest) returns (ListDatabasesResponse)

列出專案中的所有資料庫。

授權範圍

需要下列其中一種 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:falsettlConfig:*

授權範圍

需要下列其中一種 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 RestoreDatabase(RestoreDatabaseRequest) returns (Operation)

從現有的備份還原,建立新的資料庫。

新資料庫必須位於與現有備份相同的雲端區域或多區域位置。運作方式與 [FirestoreAdmin.CreateDatabase][google.firestore.admin.v1.CreateDatabase] 相似,差別在於前者不會建立新的空白資料庫,而是以現有備份的資料庫類型、索引設定和文件來建立新資料庫。

long-running operation 可用來追蹤還原進度,而作業的 metadata 欄位類型為 RestoreDatabaseMetadata。如果還原成功,response 類型為 Database。LRO 作業完成前,無法讀取或寫入新的資料庫。

授權範圍

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

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

詳情請參閱驗證總覽

更新備份排程

rpc UpdateBackupSchedule(UpdateBackupScheduleRequest) returns (BackupSchedule)

更新備份時間表。

授權範圍

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

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

詳情請參閱驗證總覽

更新資料庫

rpc UpdateDatabase(UpdateDatabaseRequest) returns (Operation)

更新資料庫。

授權範圍

需要下列其中一種 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

詳情請參閱驗證總覽

備份

Cloud Firestore 資料庫備份。

備份含有指定資料庫在特定時間點的所有文件和索引設定。

欄位
name

string

僅供輸出。備份的專屬資源名稱。

格式為 projects/{project}/locations/{location}/backups/{backup}

database

string

僅供輸出。備份來源的 Firestore 資料庫名稱。

格式為 projects/{project}/databases/{database}

database_uid

string

僅供輸出。系統為備份來源的 Firestore 資料庫產生的 UUID4。

snapshot_time

Timestamp

僅供輸出。備份含有目前外部一致的資料庫副本。

expire_time

Timestamp

僅供輸出。這個備份的到期時間。

state

State

僅供輸出。備份的目前狀態。

狀態

表示備份的目前狀態。

列舉
STATE_UNSPECIFIED 未指定狀態。
CREATING 系統仍在建立待處理的備份,備份作業會以這個狀態遭到拒絕。
READY 備份完成,可以開始使用。
NOT_AVAILABLE 目前無法備份。

備份排程

Cloud Firestore 資料庫的備份排程。

這項資源的擁有者為備份的資料庫,並連同資料庫刪除。但實際上不會備份資料。

欄位
name

string

僅供輸出。指定專案所有位置和資料庫的專屬備份排程 ID。

系統會自動指派這項資訊。

格式為 projects/{project}/databases/{database}/backupSchedules/{backup_schedule}

create_time

Timestamp

僅供輸出。這個備份排程的建立與生效時間戳記。

系統不會在這個排程前建立任何備份。

update_time

Timestamp

僅供輸出。這個備份排程最近一次更新的時間戳記。首次建立備份排程時,這個值會與 create_time 相同。

retention

Duration

相較於建立時間,未來的相對時間應刪除備份,例如將備份保留 7 天。

聯集欄位 recurrence。代表建立備份時間的一個欄位。recurrence 只能採用下列其中一種設定:
daily_recurrence

DailyRecurrence

每日執行的時間表。

weekly_recurrence

WeeklyRecurrence

設定每週在特定日期執行的時間表。

建立備份排程要求

FirestoreAdmin.CreateBackupSchedule 的要求。

欄位
parent

string

必須提供。父項資料庫。

設定 projects/{project}/databases/{database} 格式

backup_schedule

BackupSchedule

必須提供。要建立的備份時間表。

CreateDatabaseMetadata

這個類型沒有任何欄位。

與建立資料庫作業相關的中繼資料。

CreateDatabaseRequest

FirestoreAdmin.CreateDatabase 的要求。

欄位
parent

string

必須提供。projects/{project_id} 表單的父項名稱

database

Database

必須提供。要建立的資料庫。

database_id

string

必須提供。用於資料庫的 ID,將成為資料庫資源名稱的最終元件。

這個值必須介於 4 至 63 個字元。有效的字元必須為 /[a-z][0-9]-/,第一個字元為英文字母和最後一個英文字母或數字。不得採用類似 UUID 的格式 /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/。

「(預設)」資料庫 ID 也是有效的。

建立索引要求

FirestoreAdmin.CreateIndex 的要求。

欄位
parent

string

必須提供。projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id} 表單的父項名稱

index

Index

必須提供。要建立的複合式索引。

每日週期

這個類型沒有任何欄位。

代表每天執行的週期性排程。

時區為世界標準時間 (UTC)。

資料庫

Cloud Firestore 資料庫。

欄位
name

string

資料庫的資源名稱。格式:projects/{project}/databases/{database}

uid

string

僅供輸出。系統為這個資料庫產生的 UUID4。

create_time

Timestamp

僅供輸出。建立這個資料庫的時間戳記。2016 年之前建立的資料庫不會填入 create_time。

update_time

Timestamp

僅供輸出。這個資料庫最近更新的時間戳記。請注意,這僅包括資料庫資源的更新,而非資料庫包含的資料。

location_id

string

資料庫位置。如要查看可用位置,請前往 https://cloud.google.com/firestore/docs/locations

type

DatabaseType

資料庫的類型。如要瞭解選擇方式,請參閱 https://cloud.google.com/datastore/docs/firestore-or-datastore

concurrency_mode

ConcurrencyMode

這個資料庫使用的並行控制模式。

version_retention_period

Duration

僅供輸出。過去資料版本保留在資料庫中的期間。

任何 readquery 都可以在此視窗中指定 read_time,並會讀取當時的資料庫狀態。

如果時間點復原功能已啟用,保留期限為 7 天。否則保留期限為 1 小時。

earliest_version_time

Timestamp

僅供輸出。可從資料庫中讀取舊版資料的最早時間戳記。請參閱上方的 [version_retention_period];這個欄位填入 now - version_retention_period

這個值會持續更新,並在查詢時過時。如果您使用這個值復原資料,請務必考量從查詢該值到啟動復原的那一刻起。

point_in_time_recovery_enablement

PointInTimeRecoveryEnablement

是否要對這個資料庫啟用時間點復原功能。

app_engine_integration_mode

AppEngineIntegrationMode

要用於這個資料庫的 App Engine 整合模式。

key_prefix

string

僅供輸出。這個資料庫的 key_prefix。這個 key_prefix 會與專案 ID (「~」) 搭配使用,以建構從 Google App Engine 第一代執行階段中 Cloud Datastore API 傳回的應用程式 ID。

這個值可能空白,在此情況下,網址編碼金鑰要使用的 appid 會是 project_id (例如:foo,而非 v~foo)。

delete_protection_state

DeleteProtectionState

資料庫的刪除保護狀態。

cmek_config

CmekConfig

選用設定。狀態表示這個資料庫已啟用 CMEK。

etag

string

伺服器會根據其他欄位的值計算這個總和檢查碼,而且可能會在更新及刪除要求時傳送,以確保用戶端在繼續操作之前,先掌握最新的值。

AppEngineIntegrationMode

App Engine 整合模式的類型。

列舉
APP_ENGINE_INTEGRATION_MODE_UNSPECIFIED 未使用。
ENABLED 如果 App Engine 應用程式與這個資料庫位於相同區域,App Engine 的設定就會影響這個資料庫。這包括停用應用程式和資料庫,以及停用資料庫寫入功能。
DISABLED

App Engine 不會影響這個資料庫提供要求的功能。

這是使用 Firestore API 建立的資料庫的預設設定。

CmekConfig

Firestore 資料庫的 CMEK (客戶自行管理的加密金鑰) 設定。如果沒有顯示,資料庫就會受到預設的 Google 加密金鑰的保護。

欄位
kms_key_name

string

必須提供。只有與這個資料庫位於相同位置的金鑰才能用於加密。

如為 Firestore 的 nam5 多區域,這個值對應 Cloud KMS 多區域我們的服務。如為 Firestore 的 eur3 多區域,這會對應 Cloud KMS 多區域 europe。請參閱 https://cloud.google.com/kms/docs/locations

預期格式為 projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}

active_key_version[]

string

僅供輸出。目前使用中的 KMS 金鑰版本。在金鑰輪替期間,可能有多個使用中的金鑰版本。

預期格式為 projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}

並行模式

交易的並行控制模式類型。

列舉
CONCURRENCY_MODE_UNSPECIFIED 未使用。
OPTIMISTIC 預設使用最佳化並行控制。這個模式適用於 Cloud Firestore 資料庫。
PESSIMISTIC

預設使用悲觀並行控制。這個模式適用於 Cloud Firestore 資料庫。

這是 Cloud Firestore 的預設設定。

OPTIMISTIC_WITH_ENTITY_GROUPS

根據預設,請搭配實體群組使用樂觀並行控制。

這是 Cloud Datastore 唯一可用的模式。

這個模式也適用於搭配 Datastore 模式的 Cloud Firestore,但不建議採用此模式。

DatabaseType

資料庫的類型。如要瞭解選擇方式,請參閱 https://cloud.google.com/datastore/docs/firestore-or-datastore

只有在資料庫中沒有任何內容時,才能變更模式。

列舉
DATABASE_TYPE_UNSPECIFIED 預設值。如果省略資料庫類型,則會使用這個值。
FIRESTORE_NATIVE Firestore 原生模式
DATASTORE_MODE 使用 Datastore 模式的 Firestore。

DeleteProtectionState

資料庫的刪除保護狀態。

列舉
DELETE_PROTECTION_STATE_UNSPECIFIED 預設值。未指定刪除保護類型
DELETE_PROTECTION_DISABLED 刪除保護功能已停用
DELETE_PROTECTION_ENABLED 已啟用刪除保護功能

啟用 PointInTimeRecovery

啟用時間點復原功能。

列舉
POINT_IN_TIME_RECOVERY_ENABLEMENT_UNSPECIFIED 未使用。
POINT_IN_TIME_RECOVERY_ENABLED

系統支援在過去 7 天內的所選資料版本讀取資料:

  • 讀取過去 1 小時內的任何時間戳記
  • 超過 1 小時和 7 天內的 1 分鐘快照讀取

version_retention_periodearliest_version_time 可用來判斷支援的版本。

POINT_IN_TIME_RECOVERY_DISABLED 讀取過去 1 小時內任何版本的資料。

DeleteBackupRequest

FirestoreAdmin.DeleteBackup 的要求。

欄位
name

string

必須提供。要刪除的備份名稱。

格式為 projects/{project}/locations/{location}/backups/{backup}

刪除備份排程要求

[FirestoreAdmin.Delete BackupSchedules][] 的要求。

欄位
name

string

必須提供。備份排程的名稱。

設定 projects/{project}/databases/{database}/backupSchedules/{backup_schedule} 格式

刪除資料庫中繼資料

這個類型沒有任何欄位。

與刪除資料庫作業相關的中繼資料。

刪除資料庫要求

FirestoreAdmin.DeleteDatabase 的要求。

欄位
name

string

必須提供。projects/{project_id}/databases/{database_id} 表單的名稱

etag

string

資料庫目前的 etag。如果提供的 etag 與資料庫目前的 etag 不符,系統會封鎖刪除作業,並傳回 FAILED_PRECONDITION 錯誤。

刪除索引要求

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

文件匯出目標位置。

namespace_ids[]

string

要匯出的命名空間 ID 為何。

snapshot_time

Timestamp

時間戳記,對應至要匯出的資料庫版本。如未指定,無法保證匯出文件的一致性。

匯出文件要求

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 是值區 (沒有命名空間路徑),系統會根據開始時間產生前置字串。

namespace_ids[]

string

空白清單代表所有命名空間。這適合不使用命名空間的資料庫使用,

空字串元素代表預設的命名空間。如果資料庫在非預設命名空間中存有資料,但不想納入這些資料,則應使用這個選項。這份清單中的每個命名空間不得重複。

snapshot_time

Timestamp

時間戳記,對應至待匯出的資料庫版本。時間戳記必須是過去的時間 (四捨五入至分鐘),且不得早於 earliestVersionTime。如有指定,匯出的文件就會呈現所提供的資料庫一致性檢視畫面。否則,我們無法保證匯出文件的一致性。

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 定義的設定。如要明確移除這個欄位的所有索引,請使用空白的索引清單指定索引設定。

ttl_config

TtlConfig

這個「Field」的 TTL 設定。設定或取消設定將會啟用或停用包含此 Field 的文件存留時間。

IndexConfig

這個欄位的索引設定。

欄位
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_configtruereverting 則為 false

TtlConfig

已設定此 Field 的文件的存留時間 (TTL) 設定。

系統會將時間戳記值儲存到啟用存留時間的欄位,並視為文件的絕對到期時間。過去的時間戳記值代表文件可以立即到期。使用任何其他資料類型或將欄位留空,系統就會停用個別文件的到期時間。

欄位
state

State

僅供輸出。存留時間設定的狀態。

狀態

要將存留時間設定套用至所有文件的狀態。

列舉
STATE_UNSPECIFIED 狀態不明或不明。
CREATING 正在套用存留時間。目前有一個長時間執行的作業來追蹤變更。新撰寫的文件會依照要求套用存留時間。系統仍在處理現有文件要求的存留時間。所有現有文件的存留時間處理完畢後,狀態會變更為「有效」。
ACTIVE 所有文件的存留時間皆已啟用。
NEEDS_REPAIR 無法為所有現有文件啟用存留時間設定。新撰寫的文件仍會套用存留時間 (TTL)。上次嘗試啟用這個「Field」的 TTL 時傳回的 LRO 作業失敗,可能擁有更多詳細資料。

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

作業的狀態。

progress_documents

Progress

這項作業的進度 (在文件中)。

progress_bytes

Progress

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

ttl_config_delta

TtlConfigDelta

說明 TTL 設定的差異。

IndexConfigDelta

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

欄位
change_type

ChangeType

指定索引變更方式。

index

Index

正在變更的索引。

ChangeType

指定索引變更方式。

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

TtlConfigDelta

存留時間設定變更的相關資訊。

欄位
change_type

ChangeType

指定存留時間設定的變更方式。

ChangeType

指定存留時間設定的變更方式。

列舉
CHANGE_TYPE_UNSPECIFIED 未指定或變更類型。
ADD 正在新增存留時間設定。
REMOVE 正在移除 TTL 設定。

GetBackupRequest

FirestoreAdmin.GetBackup 的要求。

欄位
name

string

必須提供。要擷取的備份名稱。

格式為 projects/{project}/locations/{location}/backups/{backup}

取得備份排程要求

FirestoreAdmin.GetBackupSchedule 的要求。

欄位
name

string

必須提供。備份排程的名稱。

設定 projects/{project}/databases/{database}/backupSchedules/{backup_schedule} 格式

GetDatabaseRequest

FirestoreAdmin.GetDatabase 的要求。

欄位
name

string

必須提供。projects/{project_id}/databases/{database_id} 表單的名稱

取得欄位要求

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

匯入文件的位置。

namespace_ids[]

string

要匯入的命名空間 ID 為何。

匯入文件要求

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.v1.ExportDocumentsResponse.output_uri_prefix

namespace_ids[]

string

空白清單代表所有命名空間。這適合不使用命名空間的資料庫使用,

空字串元素代表預設的命名空間。如果資料庫在非預設命名空間中存有資料,但不想納入這些資料,則應使用這個選項。這份清單中的每個命名空間不得重複。

索引

Cloud Firestore 索引可讓您對資料庫中的文件進行簡單複雜的查詢。

欄位
name

string

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

query_scope

QueryScope

如果索引已指定集合查詢範圍,您就能查詢特定文件 (在查詢時指定),且集合 ID 相同的集合 ID 的集合。

如果索引已指定集合群組查詢範圍,則可查詢所有集合,這些集合皆來自於查詢時指定的特定文件,且集合 ID 與此索引相同。

api_scope

ApiScope

這個索引支援的 API 範圍。

fields[]

IndexField

這個索引支援的欄位。

如果是複合式索引,則需要最少 2 個,最多 100 個欄位。最後一個欄位項目一律適用於欄位路徑 __name__。如果在建立時未指定 __name__ 做為最後一個欄位,系統會自動新增該欄位,方向與最後一個欄位定義的方向相同。如果複合式索引中的最後一個欄位沒有方向性,則 __name__ 會排序 ASCENDING (除非明確指定)。

如果是單一欄位索引,則一律為一個項目,且欄位路徑等於關聯欄位的欄位路徑。

state

State

僅供輸出。索引的服務狀態。

API 範圍

API 範圍定義了查詢支援的 API (Firestore 原生或 Datastore 模式的 Firestore)。

列舉
ANY_API 只有 Firestore Native Query API 可以使用這個索引。這是預設值。
DATASTORE_MODE_API 只有 Firestore in Datastore Mode 查詢 API 可以使用索引。

索引欄位

索引中的欄位。field_path 說明要建立索引的欄位,「value_mode」則說明系統如何為欄位值建立索引。

欄位
field_path

string

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

聯集欄位 value_mode。欄位值如何建立索引。value_mode 只能採用下列其中一種設定:
order

Order

表示這個欄位支援依指定順序排序,或使用 =、!=、<、<=、>、>= 來比較。

array_config

ArrayConfig

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

vector_config

VectorConfig

表示這個欄位支援在向量上最近的鄰點和距離操作。

ArrayConfig

支援的陣列值設定。

列舉
ARRAY_CONFIG_UNSPECIFIED 索引不支援額外的陣列查詢。
CONTAINS 索引支援陣列包含查詢。

訂單

支援的順序。

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

VectorConfig

支援向量搜尋作業的索引設定

欄位
dimension

int32

必須提供。套用這項設定的向量維度。

產生的索引只會包含這個維度的向量,可用於具有相同維度的向量搜尋。

聯集欄位 type。使用的索引類型。type 只能採用下列其中一種設定:
flat

FlatIndex

表示向量索引是平面索引。

FlatIndex

這個類型沒有任何欄位。

將向量儲存在平面資料結構中,並支援詳盡的搜尋的索引。

QueryScope

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

列舉
QUERY_SCOPE_UNSPECIFIED 未指定查詢範圍。選項無效。
COLLECTION 如果索引已指定集合查詢範圍,您就能查詢特定文件的子集合 (查詢時已指定),且該集合的集合 ID 是由索引指定。
COLLECTION_GROUP 如果索引的集合群組查詢範圍已指定,您就能針對索引指定集合 ID 的所有集合執行查詢。
COLLECTION_RECURSIVE 在索引中加入所有集合的祖系。僅適用於 Datastore 模式資料庫。

狀態

索引的狀態。建立索引時,索引會處於 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.ListBackupSchedules 的要求。

欄位
parent

string

必須提供。父項資料庫。

格式為 projects/{project}/databases/{database}

列出備份排程回應

FirestoreAdmin.ListBackupSchedules 的回應。

欄位
backup_schedules[]

BackupSchedule

所有備份排程的清單。

ListBackupsRequest

FirestoreAdmin.ListBackups 的要求。

欄位
parent

string

必須提供。要列出備份的位置。

格式為 projects/{project}/locations/{location}。使用 {location} = '-' 列出特定專案所有位置的備份。以便列出單一位置或所有位置的備份。

ListBackupsResponse

FirestoreAdmin.ListBackups 的回應。

欄位
backups[]

Backup

專案的所有備份清單。

unreachable[]

string

無法擷取現有備份的位置清單。

這個回應不會因為無法連上某個位置時導致整個要求失敗,而是傳回部分結果集以及無法到達的位置清單。系統可針對單一位置重試要求,以取得具體錯誤。

ListDatabasesRequest

要求列出專案所有位置的 Firestore 資料庫。

欄位
parent

string

必須提供。projects/{project_id} 表單的父項名稱

ListDatabasesResponse

專案的資料庫清單。

欄位
databases[]

Database

專案中的資料庫。

unreachable[]

string

如果無法列出個別資料庫的資料,則都會記錄在這裡。

範例項目可能為:projects/some_project/locations/some_location。如果資料庫所在的雲端區域目前無法使用,就可能發生這種情況。在此情況下,我們無法擷取資料庫的所有詳細資料。您可以針對資源傳送「Get」要求,或針對特定位置傳送「List」要求,藉此取得更詳細的錯誤訊息 (或擷取資源)。

列出欄位要求

FirestoreAdmin.ListFields 的要求。

欄位
parent

string

必須提供。projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id} 表單的父項名稱

filter

string

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

page_size

int32

要傳回的結果數量。

page_token

string

從上次呼叫 FirestoreAdmin.ListFields 傳回的頁面符記,可用於取得下一頁的結果。

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

可用來要求另一頁結果的網頁權杖。如果留空,表示這是最後一頁。

LocationMetadata

這個類型沒有任何欄位。

google.cloud.location.Location.metadata 的中繼資料訊息。

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

已完成的工作量。

RestoreDatabaseMetadata

[RestoreDatabase][google.firestore.admin.v1.RestoreDatabase] 要求的 long-running operation 中繼資料。

欄位
start_time

Timestamp

開始還原的時間。

end_time

Timestamp

還原作業的完成時間,取消進行中的還原作業。

operation_state

OperationState

還原的作業狀態。

database

string

要還原的資料庫名稱。

backup

string

備份還原來源的名稱。

progress_percentage

Progress

系統還原還原作業的目前距離,是指剩餘時間的預估剩餘時間百分比。

RestoreDatabaseRequest

[FirestoreAdmin.RestoreDatabase][google.firestore.admin.v1.RestoreDatabase] 的要求訊息。

欄位
parent

string

必須提供。要還原資料庫的專案。格式為 projects/{project_id}

database_id

string

必須提供。用於資料庫的 ID,將成為資料庫資源名稱的最終元件。這個資料庫 ID 不得與現有資料庫建立關聯。

這個值必須介於 4 至 63 個字元。有效的字元必須為 /[a-z][0-9]-/,第一個字元為英文字母和最後一個英文字母或數字。不得採用類似 UUID 的格式 /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/。

「(預設)」資料庫 ID 也是有效的。

聯集欄位 source

source 只能採用下列其中一種設定:

backup

string

用來還原的備份資料。必須與父項位於相同的專案。

格式為:projects/{project_id}/locations/{location}/backups/{backup}

更新備份排程要求

FirestoreAdmin.UpdateBackupSchedule 的要求。

欄位
backup_schedule

BackupSchedule

必須提供。要更新的備份時間表。

update_mask

FieldMask

要更新的欄位清單。

更新資料庫中繼資料

這個類型沒有任何欄位。

與更新資料庫作業相關的中繼資料。

更新資料庫要求

FirestoreAdmin.UpdateDatabase 的要求。

欄位
database

Database

必須提供。要更新的資料庫。

update_mask

FieldMask

要更新的欄位清單。

更新欄位要求

FirestoreAdmin.UpdateField 的要求。

欄位
field

Field

必須提供。要更新的欄位。

update_mask

FieldMask

相對於欄位的遮罩。如有指定,系統只會更新 欄位中的 field_mask 指定的設定。

每週重複

代表在一週中的指定一天執行的週期性排程。

時區為世界標準時間 (UTC)。

欄位
day

DayOfWeek

要在星期幾的跑步。

不允許使用 DAY_OF_WEEK_UNSPECIFIED。