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 tạo dự án Firebase, hãy nhấp vào Firebase console, 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 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.
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 ở chế độ gốc.
- Nhập Mã cơ sở dữ liệu.
- Chọn vị trí cho cơ sở dữ liệu. Nhấp vào Tiếp theo.
-
Chọn chế độ bắt đầu cho Cloud Firestore Security Rules:
- Chế độ thử nghiệm
- Phù hợp để bắt đầu sử dụng các thư viện ứng dụng web và di động, nhưng cho phép bất kỳ ai đọc và ghi đè dữ liệu của bạn. Sau khi kiểm thử, hãy nhớ xem lại phần Bảo mật dữ liệu của bạn section.
- Chế độ sản xuất
- Từ chối tất cả các lượt đọc và ghi từ ứng dụng web và di động. Các máy chủ ứng dụng đã xác thực (Node.js, Python, Java) vẫn có thể truy cập vào cơ sở dữ liệu của bạn
- Nhấp vào Tạo.
gcloud CLI
Sử dụng lệnh
gcloud firestore databases create
:
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise \ --enable-firestore-data-access \ --enable-realtime-updates
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.
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 chữ cái, chữ số và dấu gạch ngang (
-). - Các 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 chữ số.
- Tối thiểu 4 ký tự.
- Tối đa 63 ký tự.
- Không được là UUID hoặc giống với 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 mã cơ sở dữ liệu ngay lập tức cho đến sau 5 phút.
Biện pháp bảo vệ khỏi việc xoá
Sử dụng tính năng bảo vệ khỏi việc 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ệ khỏi việc xoá hoạt động theo cách sau:
- Bạn không thể xoá cơ sở dữ liệu khi tính năng bảo vệ khỏi việc xoá đang bật cho đến khi bạn tắt tính năng này.
- Tính năng bảo vệ khỏi việc xoá bị tắt theo mặc định.
- Bạn có thể bật tính năng bảo vệ khỏi việc 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ệ khỏi việc 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:
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:
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 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ệ khỏi việc xoá.
Cập nhật chế độ cài đặt biện pháp bảo vệ khỏi việc xoá
Để bật tính năng bảo vệ khỏi việc 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ã cơ sở dữ liệu.
Để tắt tính năng bảo vệ khỏi việc 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ã 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 đã bật chế độ cài đặt bảo vệ khỏi việc xoá, thì bạn phải trước tiên tắt tính năng bảo vệ khỏi việc xoá.
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 mã hoá mặc định của Google hoặc 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 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, hãy 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 trước).
- Nếu bạn chưa bật PITR, hãy 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 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 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 mã hoá mặc định của Google.customer-managed-encryption: sử dụng 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 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'
Firebase CLI
Sử dụng lệnh firebase firestore:databases:clone để sao chép cơ sở dữ liệu:
firebase firestore:databases:clone \
'SOURCE_DATABASE' \
'DESTINATION_DATABASE' \
--snapshot-time 'PITR_TIMESTAMP' \
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.DESTINATION_DATABASE: tên cơ sở dữ liệu cho cơ sở dữ liệu được sao chép mới. Tên này sử dụng định dạng
projects/PROJECT_ID/databases/DESTINATION_DATABASE_ID. Tên cơ sở dữ liệu này không được liên kết với cơ sở dữ liệu hiện có.PITR_TIMESTAMP: dấu thời gian PITR ở định dạng RFC 3339, ở độ chi tiết phút. Ví dụ:
2025-06-01T10:20:00.00Zhoặc2025-06-01T10:30:00.00-07:00. Nếu bạn không chỉ định, ảnh chụp nhanh đã chọn sẽ là thời gian hiện tại, được làm tròn xuống đến phút.
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 mã hoá mặc định của Google.CUSTOMER_MANAGED_ENCRYPTION: sử dụng mã hoá CMEK. Chỉ định mã khoá trong đối số--kms-key-name.
Đị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 cho tất cả 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 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.