Chỉ áp dụng cho phiên bản Cloud Firestore Enterprise. |
Trang này mô tả cách tạo, cập nhật và xoá Cloud Firestore bằng cơ sở dữ liệu tương thích với MongoDB. Bạn có thể tạo nhiều cơ sở dữ liệu Cloud Firestore 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, cách ly dữ liệu khách hàng và để khu vực 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 phí.
Cấp miễn phí chỉ áp dụng cho một cơ sở dữ liệu Cloud Firestore 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 cấp miễn phí sẽ nhận được cấp miễn phí. Nếu bạn xoá cơ sở dữ liệu có áp dụng bậc miễn phí, thì cơ sở dữ liệu tiếp theo mà bạn 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 những bước sau trước khi tạo cơ sở dữ liệu:
-
Nếu bạn chưa tạo dự án Firebase, hãy tạo một dự án: Trong bảng điều khiển 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 dự án Firebase hoặc thêm các dịch vụ Firebase vào dự án Google Cloud hiện có.
- Chỉ định các vai trò Quản lý danh tính và quyền truy cập thích hợp như mô tả trong phần tiếp theo.
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
Quản lý danh tính và quyền truy cập. Các vai trò này cấp những 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 tương thích với MongoDB, hãy sử dụng một trong các phương thức sau:
Firebase bảng điều khiển
-
Trong bảng điều khiển Firebase, hãy chuyển đến trang Cơ sở dữ liệu Firestore.
- Nhấp vào Tạo cơ sở dữ liệu.
- Chọn Phiên bản dành cho doanh nghiệp. Nhấp vào Tiếp theo.
- Nhập mã nhận dạng cơ sở dữ liệu.
- Chọn vị trí cho cơ sở dữ liệu của bạn.
- Định cấu hình cơ sở dữ liệu nơi bạn chọn một chế độ.
- 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
Thay thế nội dung sau:
- DATABASE_ID: một mã nhận dạng cơ sở dữ liệu hợp lệ.
- LOCATION: tên của một Cloud Firestore có khả năng tương thích với MongoDB ở nhiều khu vực hoặc khu vực.
Để 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 đã bật chế độ bảo vệ 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 dùng cờ --tags
. 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ế nội dung sau:
- DATABASE_ID: một mã nhận dạng cơ sở dữ liệu hợp lệ.
- LOCATION: tên của một Cloud Firestore có khả năng tương thích với MongoDB ở nhiều khu vực hoặc khu vực.
- DELETE_PROTECTION_ENABLEMENT:
DELETE_PROTECTION_ENABLED
hoặ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 đã bật chế độ bảo vệ xoá cho đến khi tắt chế độ này. Cài đặt này bị tắt theo mặc định.
Mã cơ sở dữ liệu
Mã nhận dạng hợp lệ của cơ sở dữ liệu bao gồm những mã nhận dạng tuân thủ các quy tắc sau:
- Chỉ bao gồm các ký tự chữ cái, chữ 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ự.
- Có tối đa 63 ký tự.
- Không được là UUID hoặc giống với UUID. Ví dụ: đừng sử dụng mã nhận dạng 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ã nhận dạng cơ sở dữ liệu cho đến sau 5 phút.
Xoá chế độ bảo vệ
Sử dụng tính năng bảo vệ xoá để ngăn chặn việc vô tình xoá cơ sở dữ liệu. 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ó tính năng bảo vệ xoá đang bật cho đến khi tắt tính năng này.
- Tính năng bảo vệ xoá bị tắt theo mặc định.
- Bạn có thể bật tính năng bảo vệ khỏi xoá khi tạo cơ sở dữ liệu hoặc bạn có thể cập nhật cấu hình cơ sở dữ liệu để bật tính năng bảo vệ khỏi 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:
Firebase bảng điều khiển
-
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ác cơ sở dữ liệu trong dự án của bạ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:
Firebase bảng điều khiển
-
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ã 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 một cơ sở dữ liệu, hãy sử dụng lệnh gcloud firestore databases update
.
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ệ khỏi xoá
Để bật tính năng bảo vệ xoá trên cơ sở dữ liệu, hãy dùng lệnh gcloud firestore databases update
cùng 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ã cơ sở dữ liệu.
Để tắt tính năng bảo vệ xoá trên cơ sở dữ liệu, hãy dùng lệnh gcloud firestore databases update
cùng 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ã cơ sở dữ liệu.
Xoá cơ sở dữ liệu
Để xoá một 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 sẽ không phát sinh phí cho các thao tác xoá.
Nếu cơ sở dữ liệu đã bật chế độ cài đặt bảo vệ xoá, trước tiên, bạn phải tắt chế độ bảo vệ xoá.
Firebase bảng điều khiển
-
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 bạn muốn xoá.
- Nhấp vào biểu tượng 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ã nhận dạng 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 một 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ách tương tự như cơ sở dữ liệu nguồn, bằng cách 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 để 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 khoảng thời gian PITR:
- Nếu đã bật PITR cho cơ sở dữ liệu, 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 được 7 ngày).
- Nếu không bật PITR, 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 Google 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 Create a clone (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ã nhận dạng cơ sở dữ liệu cho cơ sở dữ liệu mới được sao chép. 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 để 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
Dùng lệnh gcloud alpha firestore databases clone
để sao chép cơ sở dữ liệu:
gcloud alpha firestore databases clone \
--source-database='SOURCE_DATABASE' \
--snapshot-time='PITR_TIMESTAMP' \
--destination-database='DESTINATION_DATABASE_ID'
Thay thế nội dung 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 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, với độ chi tiết theo phút. Ví dụ:
2025-06-01T10:20:00.00Z
hoặc2025-06-01T10:30:00.00-07:00
.DESTINATION_DATABASE_ID: mã nhận dạng cơ sở dữ liệu cho một cơ sở dữ liệu mới được sao chép. Mã nhận dạng cơ sở dữ liệu này không được liên kết với một cơ sở dữ liệu hiện có.
Ví dụ:
gcloud alpha firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='projects/example-project/databases/example-dest-db'
Thay đổi cấu hình mã hoá của cơ sở dữ liệu được sao chép
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 một cấu hình mã hoá như cơ sở dữ liệu nguồn. google-default-encryption
: sử dụng chế độ mã hoá mặc định của Google.customer-managed-encryption
: sử dụng phương thức mã hoá CMEK. Chỉ định một mã khoá trong đối số--kms-key-name
.
Ví dụ sau đây cho thấy cách định cấu hình chế độ mã hoá CMEK cho cơ sở dữ liệu được sao chép:
gcloud alpha firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='projects/example-project/databases/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 từng cơ sở dữ liệu
Bạn có thể sử dụng Điều kiện quản lý danh tính và quyền truy cập để định cấu hình quyền truy cập ở cấp 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 Google Cloud Console.
Xem các 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 giá trị sau:
PROJECT_ID
: mã dự án của bạnEMAIL
: một địa chỉ email đại diện cho một tài khoản cụ thể. Ví dụ:alice@example.com
.DATABASE_ID
: mã nhận dạng 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 giá trị sau:
PROJECT_ID
: mã dự án của bạnEMAIL
: một địa chỉ email đại diện cho một tài khoản cụ thể. Ví dụ:alice@example.com
.DATABASE_ID
: mã nhận dạng 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 giá trị sau:
PROJECT_ID
: mã dự án của bạnEMAIL
: một địa chỉ email đại diện cho một tài khoản cụ thể. Ví dụ:alice@example.com
.
Các điểm 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 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ề Những điểm khác biệt về hành vi.
- Tìm hiểu về các chỉ số Cloud Monitoring cho Cloud Firestore có khả năng tương thích với MongoDB.