本頁面說明如何建立、更新及刪除 Cloud Firestore 或 Microsoft SQL Server 資料庫您可以在每個區域中建立多個 Cloud Firestore 資料庫 專案。可使用多個資料庫來設定生產和測試 環境、區隔客戶資料及區域化。
(default)
資料庫
如果應用程式不需要多個資料庫,請使用 (default)
資料庫。
如果您未指定資料庫,Cloud Firestore 用戶端程式庫
根據預設,Google Cloud CLI 會連線至 (default)
資料庫。
(default)
資料庫。
必要的角色
如要建立及管理資料庫,您需要 Owner
或 Datastore Owner
Identity and Access Management 角色。這些角色可授予必要權限。
所需權限
如要管理資料庫,您必須具備下列權限:
- 建立資料庫:
datastore.databases.create
- 讀取資料庫設定:
datastore.databases.getMetadata
- 設定資料庫:
datastore.databases.update
- 刪除資料庫:
datastore.databases.delete
建立資料庫
如要建立資料庫,請使用下列其中一種方法:
控制台
-
前往 Firebase 控制台中的「Firestore 資料庫」頁面。
- 如果這是您的第一個已命名資料庫,請按一下「新增資料庫」。
- 如果沒有,請依序點選「(預設)」和「新增資料庫」。
- 設定資料庫。輸入資料庫 ID。選取位置。 按一下「建立資料庫」。
gcloud
使用
gcloud firestore databases create
敬上
指令
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --type=DATABASE_TYPE \ [--delete-protection]
更改下列內容:
- DATABASE_ID:有效的資料庫 ID。
- LOCATION:Cloud Firestore 多區域或 區域。
- DATABASE_TYPE:
firestore-native
代表原生模式,或 datastore-mode。
--delete-protection
是啟用防刪除功能的選用標記。
資料庫已啟用防刪除功能,才能刪除該資料庫
停用這項設定。這個設定預設為停用。
Firebase CLI
firebase firestore:databases:create DATABASE_ID \ --location=LOCATION \ [--delete-protection DELETE_PROTECTION_ENABLEMENT]
更改下列內容:
- DATABASE_ID:有效的資料庫 ID。
- LOCATION:a 位 Cloud Firestore 多區域或單一區域。
- DELETE_PROTECTION_ENABLEMENT:
ENABLED
或DISABLED
。
建立的資料庫一律為 Firestore 原生模式。
--delete-protection
為選填項目
引數,即可啟用防刪除功能。資料庫無法刪除
您必須停用這項設定,才能啟用防刪除功能。這項設定為
預設停用。
Terraform
resource "google_firestore_database" "database" { project = "project-id" name = DATABASE_ID location_id = LOCATION type = DATABASE_TYPE // Optional delete_protection_state = DELETE_PROTECTION_STATE }
更改下列內容:
- DATABASE_ID:有效的資料庫 ID。
- LOCATION:a 位 Cloud Firestore 多區域或單一區域。
- DATABASE_TYPE:
FIRESTORE_NATIVE
代表原生模式,或DATASTORE_MODE
代表 Datastore 模式。 - DELETE_PROTECTION_ENABLEMENT:兩者皆可
DELETE_PROTECTION_ENABLED
或DELETE_PROTECTION_DISABLED
。
delete_protection_state
是啟用刪除功能的選用引數
以及防護無法刪除已啟用防刪除功能的資料庫
直到您停用此設定為止這項設定預設為停用。
資料庫 ID
有效的資料庫 ID 包括 (default)
,以及符合
包括:
- 只能使用英文字母、數字和連字號 (
-
) 字元。 - 字母必須為小寫。
- 第一個字元必須是字母。
- 最後一個字元須為英文字母或數字。
- 至少 4 個字元。
- 長度上限為 63 個半形字元。
- 此值不得為 UUID 或類似 UUID。舉例來說,請勿使用
f47ac10b-58cc-0372-8567-0e02b2c3d479
。
刪除資料庫後,需等待 5 分鐘才能再次重複使用資料庫 ID。
刪除防護措施
使用防刪除功能防止資料庫意外刪除。 您必須先停用防刪除功能,才能刪除已啟用防刪除功能的資料庫 防刪除功能刪除防護功能預設為停用。您可以啟用 刪除防護功能 更新資料庫設定 啟用防刪除功能。
為資料庫設定 Cloud Firestore 安全性規則
使用 Firebase CLI 將 Cloud Firestore 安全性規則部署至每個 或 Microsoft SQL Server 資料庫請參閱管理及部署 Cloud Firestore 安全性規則指南。
透過用戶端程式庫存取已命名的資料庫
已命名資料庫包含任何未命名為 (default)
的資料庫。根據預設
Firebase SDK 和 Google API 用戶端程式庫會連結至 (default)
專案中的 Cloud Firestore 資料庫如要建立用戶端連線
更新為已命名的資料庫,請在執行個體化用戶端時設定資料庫 ID。
可列出資料庫
請使用下列其中一種方法列出資料庫:
控制台
在 Google Cloud Platform Console 中,前往「Databases」頁面。
gcloud
使用
gcloud firestore databases list
敬上
指令,列出專案中所有資料庫。
gcloud firestore databases list
Firebase CLI
使用 firebase firestore:databases:list
指令列出專案中的所有資料庫。
firebase firestore:databases:list
查看資料庫詳細資料
如要查看單一資料庫的詳細資料,請使用下列其中一種方法:
gcloud
使用 gcloud firestore databases describe
指令:
gcloud firestore databases describe --database=DATABASE_ID
Firebase CLI
使用 firebase firestore:databases:get
指令:
firebase firestore:databases:get DATABASE_ID
請將 DATABASE_ID 改成資料庫 ID。
更新資料庫設定
如要更新資料庫的配置設定,請使用
gcloud firestore databases update
敬上
指令
使用這個指令可以啟用或停用防刪除功能。
更新防刪除功能設定
如要啟用資料庫的防刪除功能,請使用
gcloud firestore databases update
加上 --delete-protection
旗標例如:
gcloud
gcloud firestore databases update --database=DATABASE_ID --delete-protection
請將 DATABASE_ID 改成資料庫 ID。
如要停用資料庫的防刪除功能,請使用
gcloud firestore databases update
加上 --no-delete-protection
旗標例如:
gcloud
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection
請將 DATABASE_ID 改成資料庫 ID。
刪除資料庫
如要刪除資料庫,請使用控制台或指令列工具。
如果資料庫已啟用防刪除功能,您必須 請先停用防刪除功能。
如果資料庫包含 App Engine 搜尋資料或 blob 實體、 您必須先刪除這些資料
刪除資料庫並不會一併刪除任何檔案 該資料庫的 Eventarc 觸發條件。 觸發條件會停止傳送事件,但在您執行這項操作之前,會持續存在 刪除觸發條件。
控制台
-
前往 Firebase 控制台中的「Firestore 資料庫」頁面。
- 在「資料」分頁中,按一下資料庫資料表檢視上方的 ,然後選取 刪除資料庫。
- 按照操作說明刪除資料庫。
gcloud
使用 「gcloud Firestore database delete` 指令」。
gcloud firestore databases delete --database=DATABASE_ID
將 DATABASE_ID 替換為要刪除的資料庫 ID。
設定個別資料庫的存取權限
別擔心!您可以使用 Identity and Access Management 條件 在每個資料庫層級設定存取權限 下列範例使用 Google Cloud CLI 指派條件式存取權給 一或多個資料庫你也可以 在 GCP 控制台中定義 IAM 條件。
查看現有 IAM 政策
gcloud projects get-iam-policy PROJECT_ID
將 PROJECT_ID
設為您的專案 ID。
授予資料庫存取權
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name=="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'
設定下列欄位:
PROJECT_ID
:您的專案 IDEMAIL
:代表特定 Google 帳戶的電子郵件地址。例如:alice@example.com
。DATABASE_ID
:資料庫 ID。TITLE
:運算式的選用標題。DESCRIPTION
:運算式的說明 (選用)。
授予所有資料庫的存取權,但一個資料庫除外
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name!="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'
設定下列欄位:
PROJECT_ID
:您的專案 IDEMAIL
:代表特定 Google 帳戶的電子郵件地址。例如:alice@example.com
。DATABASE_ID
:資料庫 ID。TITLE
:運算式的選用標題。DESCRIPTION
:運算式的說明 (選用)。
移除特定成員和角色的政策
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all
設定下列欄位:
PROJECT_ID
:您的專案 IDEMAIL
:代表特定 Google 帳戶的電子郵件地址。例如:alice@example.com
。
Cloud Monitoring
Cloud Firestore 指標會顯示在兩項受控資源下方。
您可以透過 firestore.googleapis.com/Database
檢查資料庫層級的匯總指標。firestore_instance
下回報的指標是在專案層級匯總。
限制
- 每項專案最多可有 100 個資料庫。您可以與支援團隊聯絡,要求提高上限。
- 如果
(default)
資料庫含有任何 GAE 搜尋資料,您就無法刪除該資料庫。 請使用索引刪除 API 刪除 GAE 搜尋資料。如果您最近才刪除 Google Analytics 搜尋資料,可能要等一段時間才能刪除資料庫。 - 如果
(default)
資料庫含有任何 blob 實體,您就無法刪除該資料庫。請使用 Blob 刪除 API 刪除 Blob 資料。 您可以執行下列 GQL 查詢,檢查(default)
資料庫是否包含 Blob 存放區資料 前往 Google Cloud Platform 控制台:SELECT * FROM __BlobInfo__
。 - 刪除作業發生 5 分鐘後,您才能重複使用資料庫 ID。
- Cloud 函式 v1 不支援 Firestore 具名資料庫。請使用 Cloud Firestore 觸發條件 (第 2 代) 為具名資料庫設定事件。
- 刪除資料庫後,Firestore 函式觸發 v1 和 Firestore 事件觸發條件可能會停止運作,即使以相同名稱建立新資料庫也是如此。