Trang này mô tả cách tạo, cập nhật và xoá Cloud Firestore cơ sở dữ liệu. Bạn có thể tạo nhiều Cloud Firestore cơ sở dữ liệu cho mỗi dự án. Bạn có thể sử dụng nhiều cơ sở dữ liệu để thiết lập môi trường kiểm thử và sản xuất, để tách biệt dữ liệu khách hàng và để bản địa hoá dữ liệu.
Mức sử dụng bậc miễn phí
Cloud Firestore cung cấp bậc miễn phí để bạn có thể bắt đầu sử dụng mà không tốn chi phí.
Bậc miễn phí chỉ áp dụng cho một Cloud Firestore cơ sở dữ liệu cho mỗi dự án. Cơ sở dữ liệu đầu tiên được tạo trong một dự án không có cơ sở dữ liệu bậc miễn phí sẽ được hưởng bậc miễn phí. Nếu cơ sở dữ liệu được áp dụng bậc miễn phí bị xoá, thì cơ sở dữ liệu tiếp theo được tạo sẽ nhận được bậc miễn phí.
Trước khi bắt đầu
Bạn phải hoàn tất các bước sau trước khi tạo cơ sở dữ liệu:
-
Nếu bạn chưa có, hãy tạo một dự án Firebase: Trong bảng điều khiển Firebase Firebase, hãy nhấp vào Thêm dự án, sau đó làm theo hướng dẫn trên màn hình để tạo một dự án Firebase hoặc thêm các dịch vụ Firebase vào một dự án Google Cloud hiện có.
- Chỉ định các vai trò Identity and Access Management (IAM) thích hợp như mô tả trong phần tiếp theo.
Các vai trò bắt buộc
Để tạo và quản lý cơ sở dữ liệu, bạn cần có vai trò Owner hoặc Datastore Owner
Identity and Access Management. Các vai trò này cấp các quyền cần thiết.
Các quyền bắt buộc
Để quản lý cơ sở dữ liệu, bạn cần có các quyền sau:
- Tạo cơ sở dữ liệu:
datastore.databases.create - Đọc cấu hình cơ sở dữ liệu:
datastore.databases.getMetadata - Định cấu hình cơ sở dữ liệu:
datastore.databases.update - Xoá cơ sở dữ liệu:
datastore.databases.delete - Sao chép cơ sở dữ liệu:
datastore.databases.clone
Tạo cơ sở dữ liệu
Để tạo cơ sở dữ liệu Cloud Firestore, hãy sử dụng một trong các phương thức sau:
Bảng điều khiển Firebase
-
Trong bảng điều khiển Firebase, hãy chuyển đến trang Cơ sở dữ liệu Firestore.
- Nhấp vào Thêm cơ sở dữ liệu.
- Chọn Phiên bản dành cho doanh nghiệp. Nhấp vào Tiếp theo.
- Chọn Firestore có khả năng tương thích với MongoDB.
- Nhập Mã cơ sở dữ liệu.
- Chọn vị trí cho cơ sở dữ liệu.
- Nhấp vào Tạo.
Giao diện dòng lệnh (CLI) của Firebase
firebase firestore:databases:create --edition EDITION DATABASE_ID \ --location=LOCATION
gcloud CLI
Sử dụng lệnh
gcloud firestore databases create
và đặt --edition=enterprise.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise \ --enable-mongodb-compatible-data-access
Thay thế các mục sau:
- DATABASE_ID: một mã cơ sở dữ liệu hợp lệ.
- LOCATION: tên của một khu vực hoặc khu vực nhiều vùng của Cloud Firestore.
Để bật tính năng bảo vệ chống xoá, hãy thêm cờ --delete-protection.
Bạn không thể xoá cơ sở dữ liệu có bật tính năng bảo vệ chống xoá cho đến khi tắt chế độ cài đặt này. Cài đặt này bị tắt theo mặc định.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise \ --delete-protection
Để thêm thẻ
vào cơ sở dữ liệu, hãy sử dụng
--tags
cờ. Ví dụ:
--tags=123/environment=production,123/costCenter=marketing--tags=tagKeys/333=tagValues/444
Terraform
Sử dụng tài nguyên
google_firestore_database
và đặt database_edition thành ENTERPRISE
resource "google_firestore_database" "database" { name = "DATABASE_ID" location_id = "LOCATION" type = "FIRESTORE_NATIVE" database_edition = "ENTERPRISE" // Optional delete_protection_state = "DELETE_PROTECTION_STATE" }
Thay thế các mục sau:
- DATABASE_ID: một mã cơ sở dữ liệu hợp lệ.
- LOCATION: tên của một khu vực hoặc khu vực nhiều vùng của Cloud Firestore.
- DELETE_PROTECTION_ENABLEMENT: Hoặc
DELETE_PROTECTION_ENABLEDhoặcDELETE_PROTECTION_DISABLED.
Để bật tính năng bảo vệ chống xoá, hãy đặt delete_protection_state thành DELETE_PROTECTION_ENABLED.
Bạn không thể xoá cơ sở dữ liệu có bật tính năng bảo vệ chống xoá cho đến khi tắt chế độ cài đặt này. Cài đặt này bị tắt theo mặc định.
Mã cơ sở dữ liệu
Mã cơ sở dữ liệu hợp lệ bao gồm các mã tuân thủ những điều sau:
- Chỉ bao gồm các ký tự chữ cái, số và dấu gạch nối (
-). - Chữ cái phải là chữ thường.
- Ký tự đầu tiên phải là một chữ cái.
- Ký tự cuối cùng phải là một chữ cái hoặc số.
- Tối thiểu 4 ký tự.
- Tối đa 63 ký tự.
- Không được là UUID hoặc giống UUID. Ví dụ: không sử dụng mã như
f47ac10b-58cc-0372-8567-0e02b2c3d479.
Nếu xoá một cơ sở dữ liệu, bạn không thể sử dụng lại ngay mã cơ sở dữ liệu đó cho đến sau 5 phút.
Biện pháp bảo vệ chống xoá
Sử dụng tính năng bảo vệ chống xoá để tránh trường hợp xoá cơ sở dữ liệu do nhầm lẫn. Tính năng bảo vệ chống xoá hoạt động theo cách sau:
- Bạn không thể xoá cơ sở dữ liệu có bật tính năng bảo vệ chống xoá cho đến khi tắt tính năng bảo vệ chống xoá.
- Tính năng bảo vệ chống xoá bị tắt theo mặc định.
- Bạn có thể bật tính năng bảo vệ chống xoá khi tạo cơ sở dữ liệu hoặc có thể cập nhật cấu hình cơ sở dữ liệu để bật tính năng bảo vệ chống xoá.
Liệt kê cơ sở dữ liệu
Sử dụng một trong các phương thức sau để liệt kê cơ sở dữ liệu:
Bảng điều khiển Firebase
-
Trong bảng điều khiển Firebase, hãy chuyển đến trang Cơ sở dữ liệu Firestore.
- Nhấp vào Cloud Firestore để xem tất cả cơ sở dữ liệu cho dự án.
gcloud CLI
Sử dụng lệnh
gcloud firestore databases list
để liệt kê tất cả cơ sở dữ liệu trong dự án.
gcloud firestore databases list
Xem thông tin chi tiết về cơ sở dữ liệu
Để xem thông tin chi tiết về một cơ sở dữ liệu, hãy sử dụng một trong các phương thức sau:
Bảng điều khiển Firebase
-
Trong bảng điều khiển Firebase, hãy chuyển đến trang Cơ sở dữ liệu Firestore.
- Chọn một cơ sở dữ liệu trong danh sách cơ sở dữ liệu.
gcloud CLI
Sử dụng lệnh gcloud firestore databases describe:
gcloud firestore databases describe --database=DATABASE_ID
Thay thế DATABASE_ID bằng một mã cơ sở dữ liệu.
Cập nhật cấu hình cơ sở dữ liệu
Để cập nhật chế độ cài đặt cấu hình của cơ sở dữ liệu, hãy sử dụng
gcloud firestore databases update
lệnh.
Sử dụng lệnh này để thay đổi, bật hoặc tắt tính năng bảo vệ chống xoá.
Cập nhật chế độ cài đặt bảo vệ chống xoá
Để bật tính năng bảo vệ chống xoá trên cơ sở dữ liệu, hãy sử dụng lệnh gcloud firestore databases update với cờ --delete-protection. Ví dụ:
gcloud CLI
gcloud firestore databases update --database=DATABASE_ID --delete-protection
Thay thế DATABASE_ID bằng một mã cơ sở dữ liệu.
Để tắt tính năng bảo vệ chống xoá trên cơ sở dữ liệu, hãy sử dụng lệnh gcloud firestore databases update với cờ --no-delete-protection. Ví dụ:
gcloud CLI
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection
Thay thế DATABASE_ID bằng một mã cơ sở dữ liệu.
Xoá cơ sở dữ liệu
Để xoá cơ sở dữ liệu, hãy sử dụng bảng điều khiển hoặc công cụ dòng lệnh. Việc xoá cơ sở dữ liệu không phát sinh chi phí cho các thao tác xoá.
Nếu cơ sở dữ liệu có bật chế độ cài đặt bảo vệ chống xoá, thì bạn phải trước tiên tắt tính năng bảo vệ chống xoá.
Bảng điều khiển Firebase
-
Trong bảng điều khiển Firebase, hãy chuyển đến trang Cơ sở dữ liệu Firestore.
- Chọn cơ sở dữ liệu mà bạn muốn xoá.
- Nhấp vào Xem thêm.
- Nhấp vào Xoá để xoá cơ sở dữ liệu.
gcloud CLI
Sử dụng lệnh `gcloud firestore databases delete`.
gcloud firestore databases delete --database=DATABASE_ID
Thay thế DATABASE_ID bằng mã của cơ sở dữ liệu cần xoá.
Sao chép cơ sở dữ liệu
Bạn có thể sao chép một cơ sở dữ liệu hiện có tại dấu thời gian đã chọn vào một cơ sở dữ liệu mới:
Cơ sở dữ liệu được sao chép là một cơ sở dữ liệu mới sẽ được tạo ở cùng vị trí với cơ sở dữ liệu nguồn.
Để tạo bản sao, Cloud Firestore sử dụng dữ liệu khôi phục tại một thời điểm (PITR) của cơ sở dữ liệu nguồn. Cơ sở dữ liệu được sao chép bao gồm tất cả dữ liệu và chỉ mục.
Theo mặc định, cơ sở dữ liệu được sao chép sẽ được mã hoá theo cùng một cách với cơ sở dữ liệu nguồn, sử dụng quy trình mã hoá mặc định của Google hoặc quy trình mã hoá CMEK. Bạn có thể chỉ định một loại mã hoá khác hoặc sử dụng một khoá khác cho quy trình mã hoá CMEK.
Dấu thời gian có độ chi tiết là một phút và chỉ định một thời điểm trong quá khứ, trong khoảng thời gian được xác định bởi cửa sổ PITR:
- Nếu bạn đã bật PITR cho cơ sở dữ liệu, thì bạn có thể chọn bất kỳ phút nào trong 7 ngày qua (hoặc ít hơn nếu bạn đã bật PITR chưa đến 7 ngày).
- Nếu bạn chưa bật PITR, thì bạn có thể chọn bất kỳ phút nào trong giờ qua.
- Bạn có thể kiểm tra dấu thời gian sớm nhất mà bạn có thể chọn trong phần mô tả cơ sở dữ liệu.
Bảng điều khiển
Trong bảng điều khiển Cloud, hãy chuyển đến trang Cơ sở dữ liệu.
Nhấp vào Xem thêm trong hàng của bảng cho cơ sở dữ liệu mà bạn muốn sao chép. Nhấp vào Sao chép. Hộp thoại Tạo bản sao sẽ xuất hiện.
Trong hộp thoại Tạo bản sao, hãy cung cấp các tham số để sao chép cơ sở dữ liệu:
Trong trường Đặt mã nhận dạng cho bản sao, hãy nhập mã cơ sở dữ liệu cho cơ sở dữ liệu được sao chép mới. Mã cơ sở dữ liệu này không được liên kết với cơ sở dữ liệu hiện có.
Trong trường Sao chép từ, hãy chọn một thời điểm để sử dụng cho việc sao chép. Thời gian đã chọn tương ứng với dấu thời gian PITR, ở độ chi tiết theo phút.
Nhấp vào Tạo bản sao.
gcloud
Sử dụng lệnh
gcloud firestore databases clone
để sao chép cơ sở dữ liệu:
gcloud firestore databases clone \
--source-database='SOURCE_DATABASE' \
--snapshot-time='PITR_TIMESTAMP' \
--destination-database='DESTINATION_DATABASE_ID'
Thay thế các mục sau:
SOURCE_DATABASE: tên cơ sở dữ liệu của một cơ sở dữ liệu hiện có mà bạn muốn sao chép. Tên này sử dụng định dạng
projects/PROJECT_ID/databases/SOURCE_DATABASE_ID.PITR_TIMESTAMP: dấu thời gian PITR ở định dạng RFC 3339, ở độ chi tiết theo phút. Ví dụ:
2025-06-01T10:20:00.00Zhoặc2025-06-01T10:30:00.00-07:00.DESTINATION_DATABASE_ID: mã cơ sở dữ liệu cho cơ sở dữ liệu được sao chép mới. Mã cơ sở dữ liệu này không được liên kết với cơ sở dữ liệu hiện có.
Ví dụ:
gcloud firestore databases clone \
--source-database='projects/example-project/databases/example-source-db' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db'
Nếu bạn muốn liên kết với một số thẻ trong khi sao chép cơ sở dữ liệu, hãy sử dụng lệnh trước đó với cờ --tags. Đây là danh sách không bắt buộc gồm các cặp thẻ KEY=VALUE để liên kết.
Ví dụ:
gcloud firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db' \
--tags=key1=value1,key2=value2
Theo mặc định, cơ sở dữ liệu được sao chép sẽ có cùng cấu hình mã hoá với cơ sở dữ liệu nguồn. Để thay đổi cấu hình mã hoá, hãy sử dụng đối số --encryption-type:
- (Mặc định)
use-source-encryption: sử dụng cùng cấu hình mã hoá với cơ sở dữ liệu nguồn. google-default-encryption: sử dụng quy trình mã hoá mặc định của Google.customer-managed-encryption: sử dụng quy trình mã hoá CMEK. Chỉ định mã khoá trong đối số--kms-key-name.
Ví dụ sau đây cho thấy cách định cấu hình quy trình mã hoá CMEK cho cơ sở dữ liệu được sao chép:
gcloud firestore databases clone \
--source-database='projects/example-project/databases/example-source-db' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db' \
--encryption-type='customer-managed-encryption' \
--kms-key-name='projects/example-project/locations/us-central1/keyRings/example-key-ring/cryptoKeys/example-key'
Định cấu hình quyền truy cập cho mỗi cơ sở dữ liệu
Bạn có thể sử dụng Điều kiện Identity and Access Management để định cấu hình quyền truy cập ở cấp độ mỗi cơ sở dữ liệu. Các ví dụ sau đây sử dụng Google Cloud CLI để chỉ định quyền truy cập có điều kiện cho một hoặc nhiều cơ sở dữ liệu. Bạn cũng có thể xác định các điều kiện IAM trong bảng điều khiển Google Cloud.
Xem chính sách IAM hiện có
gcloud projects get-iam-policy PROJECT_ID
Đặt PROJECT_ID thành mã dự án của bạn.
Cấp quyền truy cập vào cơ sở dữ liệu
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'
Đặt các mục sau:
PROJECT_ID: mã dự án của bạnEMAIL: địa chỉ email đại diện cho một tài khoản cụ thể. Ví dụ:alice@example.com.DATABASE_ID: mã cơ sở dữ liệu.TITLE: tiêu đề không bắt buộc cho biểu thức.DESCRIPTION: nội dung mô tả không bắt buộc về biểu thức.
Cấp quyền truy cập vào tất cả cơ sở dữ liệu ngoại trừ một cơ sở dữ liệu
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'
Đặt các mục sau:
PROJECT_ID: mã dự án của bạnEMAIL: địa chỉ email đại diện cho một tài khoản cụ thể. Ví dụ:alice@example.com.DATABASE_ID: mã cơ sở dữ liệu.TITLE: tiêu đề không bắt buộc cho biểu thức.DESCRIPTION: nội dung mô tả không bắt buộc về biểu thức.
Xoá chính sách cho một thành viên và vai trò nhất định
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all
Đặt các mục sau:
PROJECT_ID: mã dự án của bạnEMAIL: địa chỉ email đại diện cho một tài khoản cụ thể. Ví dụ:alice@example.com.
Hạn chế
Bạn có thể có tối đa 100 cơ sở dữ liệu cho mỗi dự án. Bạn có thể liên hệ với nhóm hỗ trợ để yêu cầu tăng hạn mức này.
Bước tiếp theo
- Chạy Hướng dẫn bắt đầu nhanh: Tạo cơ sở dữ liệu và kết nối với cơ sở dữ liệu đó.
- Tìm hiểu về Sự khác biệt về hành vi.
- Tìm hiểu về Cloud Monitoring chỉ số cho Cloud Firestore.