Trang này mô tả cách tạo, cập nhật và xoá cơ sở dữ liệu trên Cloud Firestore. Bạn có thể tạo nhiều cơ sở dữ liệu Cloud Firestore cho từng dự án. Bạn có thể sử dụng nhiều cơ sở dữ liệu để thiết lập môi trường thực tế và kiểm thử, để tách biệt dữ liệu khách hàng và khu vực hoá dữ liệu.
Cơ sở dữ liệu (default)
Nếu ứng dụng của bạn không cần nhiều cơ sở dữ liệu, hãy dùng cơ sở dữ liệu (default)
.
Nếu bạn không chỉ định cơ sở dữ liệu, thì theo mặc định, thư viện ứng dụng Cloud Firestore và Google Cloud CLI sẽ kết nối với cơ sở dữ liệu (default)
.
(default)
.
Vai trò bắt buộc
Để tạo và quản lý cơ sở dữ liệu, bạn cần có vai trò Quản lý danh tính và quyền truy cập (Owner
) hoặc Datastore Owner
. Các vai trò này sẽ 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
Tạo cơ sở dữ liệu
Để tạo cơ sở dữ liệu, hãy dùng một trong các phương thức sau:
Bảng điều khiển
-
Trong bảng điều khiển của Firebase, hãy truy cập vào trang Firestore Database (Cơ sở dữ liệu khôi phục).
- Nếu đây là cơ sở dữ liệu được đặt tên đầu tiên của bạn, hãy nhấp vào Thêm cơ sở dữ liệu.
- Nếu không, nhấp vào (mặc định), sau đó nhấp vào Thêm cơ sở dữ liệu.
- Định cấu hình cơ sở dữ liệu. Nhập Mã cơ sở dữ liệu. Chọn một vị trí. Nhấp vào Tạo cơ sở dữ liệu.
Google Cloud
Sử dụng lệnh gcloud firestore databases create
.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --type=DATABASE_TYPE \ [--delete-protection]
Thay thế đoạn mã sau:
- DATABASE_ID: mã nhận dạng cơ sở dữ liệu hợp lệ.
- LOCATION: tên của Cloud Firestore nhiều vùng hoặc khu vực.
- DATABASE_TYPE:
firestore-native
cho chế độ Gốc hoặc chế độ kho dữ liệu cho chế độ Kho dữ liệu.
--delete-protection
là cờ không bắt buộc để bật tính năng bảo vệ khi xoá.
Bạn không thể xoá cơ sở dữ liệu đã bật tính năng chống xoá khi chưa tắt chế độ cài đặt này. Cài đặt này bị tắt theo mặc định.
Giao diện dòng lệnh (CLI) của Firebase
firebase firestore:databases:create DATABASE_ID \ --location=LOCATION \ [--delete-protection DELETE_PROTECTION_ENABLEMENT]
Thay thế đoạn mã sau:
- DATABASE_ID: mã nhận dạng cơ sở dữ liệu hợp lệ.
- LOCATION: tên của Cloud Firestore nhiều vùng hoặc khu vực.
- DELETE_PROTECTION_ENABLEMENT:
ENABLED
hoặcDISABLED
.
Cơ sở dữ liệu được tạo luôn ở chế độ Gốc của Firestore.
--delete-protection
là một đối số không bắt buộc để bật tính năng bảo vệ khi xoá. Bạn không thể xoá cơ sở dữ liệu đã bật
tính năng chống xoá khi chưa tắt chế độ cài đặt này. Chế độ cài đặt này
bị tắt theo mặc định.
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 }
Thay thế đoạn mã sau:
- DATABASE_ID: mã nhận dạng cơ sở dữ liệu hợp lệ.
- LOCATION: tên của Cloud Firestore nhiều vùng hoặc khu vực.
- DATABASE_TYPE:
FIRESTORE_NATIVE
cho chế độ Gốc hoặcDATASTORE_MODE
cho chế độ Kho dữ liệu. - DELETE_PROTECTION_ENABLEMENT:
DELETE_PROTECTION_ENABLED
hoặcDELETE_PROTECTION_DISABLED
.
delete_protection_state
là một đối số không bắt buộc để bật tính năng bảo vệ khi xoá. Bạn không thể xoá cơ sở dữ liệu đã bật tính năng chống xoá khi chưa 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 (default)
và các mã nhận dạng tuân thủ những điều sau:
- Chỉ bao gồm 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ự.
- Có tối đa 63 ký tự.
- Không được là mã nhận dạng duy nhất (UUID) hoặc giống với mã nhận dạng duy nhất (UUID). Ví dụ: không sử dụng mã nhận dạng như
f47ac10b-58cc-0372-8567-0e02b2c3d479
.
Nếu xoá 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 sau 5 phút.
Xoá chế độ bảo vệ
Sử dụng biện pháp bảo vệ xoá để ngăn việc vô tình xoá cơ sở dữ liệu. Bạn không thể xoá cơ sở dữ liệu đã bật tính năng chống xoá khi chưa tắt tính năng bảo vệ xoá. Tính năng chống xoá bị tắt theo mặc định. Bạn có thể bật tính năng bảo vệ 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ệ xoá.
Thiết lập Quy tắc bảo mật của Cloud Firestore cho cơ sở dữ liệu
Sử dụng Giao diện dòng lệnh (CLI) của Firebase để triển khai Quy tắc bảo mật của Cloud Firestore cho từng cơ sở dữ liệu. Hãy tham khảo hướng dẫn quản lý và triển khai Quy tắc bảo mật của Cloud Firestore.
Truy cập vào cơ sở dữ liệu đã đặt tên bằng thư viện ứng dụng
Cơ sở dữ liệu được đặt tên chứa mọi cơ sở dữ liệu không có tên là (default)
. Theo mặc định, Firebase SDK và Thư viện ứng dụng API của Google kết nối với cơ sở dữ liệu (default)
Cloud Firestore trong một dự án. Để tạo một ứng dụng kết nối với một cơ sở dữ liệu được đặt tên, hãy đặt mã nhận dạng cơ sở dữ liệu khi bạn tạo thực thể cho một ứng dụng.
Liệt kê cơ sở dữ liệu
Dùng một trong các phương thức sau để liệt kê cơ sở dữ liệu của bạn:
Bảng điều khiển
Trong Bảng điều khiển Google Cloud Platform, hãy chuyển đến trang Cơ sở dữ liệu.
Google Cloud
Sử dụng lệnh gcloud firestore databases list
để liệt kê tất cả cơ sở dữ liệu trong dự án của bạn.
gcloud firestore databases list
Giao diện dòng lệnh (CLI) của Firebase
Dùng lệnh firebase firestore:databases:list
để liệt kê tất cả cơ sở dữ liệu trong dự án của bạn.
firebase firestore:databases:list
Xem 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:
Google Cloud
Hãy dùng lệnh gcloud firestore databases describe
:
gcloud firestore databases describe --database=DATABASE_ID
Giao diện dòng lệnh (CLI) của Firebase
Dùng lệnh firebase firestore:databases:get
:
firebase firestore:databases:get DATABASE_ID
Thay thế DATABASE_ID bằng mã nhận dạng cơ sở dữ liệu.
Cập nhật cấu hình cơ sở dữ liệu
Để cập nhật các 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 nhằm bật hoặc tắt chế độ bảo vệ xoá.
Cập nhật chế độ cài đặt chống xoá
Để bật tính năng bảo vệ xoá trên cơ sở dữ liệu, hãy sử dụng lệnh gcloud firestore databases update
có cờ --delete-protection
. Ví dụ:
Google Cloud
gcloud firestore databases update --database=DATABASE_ID --delete-protection
Thay thế DATABASE_ID bằng mã nhận dạng cơ sở dữ liệu.
Để tắt tính năng bảo vệ xoá trên cơ sở dữ liệu, hãy sử dụng lệnh gcloud firestore databases update
có cờ --no-delete-protection
. Ví dụ:
Google Cloud
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection
Thay thế DATABASE_ID bằng mã nhận dạng cơ sở dữ liệu.
Xoá cơ sở dữ liệu
Để xoá cơ sở dữ liệu, hãy dùng bảng điều khiển hoặc công cụ dòng lệnh.
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 tính năng bảo vệ xoá.
Nếu cơ sở dữ liệu chứa dữ liệu tìm kiếm của App Engine hoặc thực thể blob, thì trước tiên bạn phải xoá dữ liệu đó.
Việc xoá cơ sở dữ liệu không tự động xoá điều kiện kích hoạt Eventarc nào cho cơ sở dữ liệu đó. Điều kiện kích hoạt sẽ ngừng phân phối sự kiện nhưng vẫn tiếp tục tồn tại cho đến khi bạn xoá điều kiện kích hoạt.
Bảng điều khiển
-
Trong bảng điều khiển của Firebase, hãy truy cập vào trang Firestore Database (Cơ sở dữ liệu khôi phục).
- Trên thẻ Dữ liệu, phía trên chế độ xem bảng dữ liệu của cơ sở dữ liệu, hãy nhấp vào , sau đó chọn Xoá cơ sở dữ liệu.
- Làm theo hướng dẫn để xoá cơ sở dữ liệu.
Google Cloud
Sử dụng lệnh `gcloud Firestore policies 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á.
Định cấu hình quyền truy cập theo 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 độ từng 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 GCP.
Xem các chính sách IAM hiện tại
gcloud projects get-iam-policy PROJECT_ID
Đặt PROJECT_ID
thành mã dự á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'
Thiết lập 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 Google 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
: mô tả không bắt buộc của biểu thức.
Cấp quyền truy cập vào tất cả 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'
Thiết lập 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 Google 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
: mô tả không bắt buộc của biểu thức.
Xoá các chính sách dành cho một thành viên và vai trò cụ thể
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all
Thiết lập 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 Google cụ thể. Ví dụ:alice@example.com
.
Cloud Monitoring
Các chỉ số trong Cloud Firestore được báo cáo trong 2 tài nguyên được giám sát.
Bạn có thể kiểm tra các chỉ số tổng hợp ở cấp cơ sở dữ liệu bằng cách xem firestore.googleapis.com/Database
. Các chỉ số được báo cáo cho firestore_instance
được tổng hợp ở cấp dự án.
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ạn không thể xoá cơ sở dữ liệu
(default)
nếu cơ sở dữ liệu đó chứa dữ liệu tìm kiếm của GAE. Vui lòng sử dụng api xoá chỉ mục để xoá dữ liệu tìm kiếm của GAE. Nếu gần đây bạn đã xoá dữ liệu trong GAE Search, thì có thể bạn phải đợi một thời gian thì mới xoá được cơ sở dữ liệu này. - Bạn không thể xoá cơ sở dữ liệu
(default)
nếu cơ sở dữ liệu đó chứa thực thể blob. Vui lòng sử dụng API xoá Blobstore để xoá dữ liệu Blobstore. Bạn có thể kiểm tra xem cơ sở dữ liệu(default)
của mình có dữ liệu Blobstore hay không bằng cách chạy truy vấn GQL sau đây trong Bảng điều khiển Google Cloud Platform:SELECT * FROM __BlobInfo__
. - Bạn không thể sử dụng lại mã cơ sở dữ liệu sau 5 phút kể từ lúc xoá.
- Hàm đám mây phiên bản 1 không hỗ trợ cơ sở dữ liệu được đặt tên Firestore. Vui lòng sử dụng Cloud Firestore Triggers (Thế hệ 2) để định cấu hình sự kiện cho các cơ sở dữ liệu đã được đặt tên.
- Hàm khôi phục kích hoạt phiên bản 1 và điều kiện kích hoạt sự kiện Firestore có thể ngừng hoạt động sau khi cơ sở dữ liệu bị xoá, ngay cả khi một cơ sở dữ liệu mới được tạo có cùng tên.