Trang này mô tả cách tạo, cập nhật và xóa cơ sở dữ liệu Cloud Firestore. 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 sản xuất và thử nghiệm, để tách biệt dữ liệu khách hàng và khu vực hóa dữ liệu.
Cơ sở dữ liệu (default)
Nếu ứng dụng của bạn không yêu cầu nhiều cơ sở dữ liệu, hãy sử dụng cơ sở dữ liệu (default)
.
Nếu bạn không chỉ định cơ sở dữ liệu, thư viện máy khách Cloud Firestore và Google Cloud CLI sẽ kết nối với cơ sở dữ liệu (default)
theo mặc định.
(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ý quyền truy cập và nhận dạng Datastore Owner
Owner
sở hữu. Những vai trò này cấp các quyền cần thiết.
Quyền cần thiết
Để 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
- Xóa cơ sở dữ liệu:
datastore.databases.delete
Tạo cơ sở dữ liệu
Để tạo cơ sở dữ liệu, hãy sử dụng một trong các phương pháp sau:
Bảng điều khiển
Trong Google Cloud Platform Console, hãy truy cập trang Cơ sở dữ liệu .
- Nhấp vào Tạo cơ sở dữ liệu .
- Chọn chế độ cơ sở dữ liệu. Nhấp vào Tiếp tục
- Cấu hình cơ sở dữ liệu của bạn. Nhập ID cơ sở dữ liệu. Chọn một vị trí. Nhấp vào Tạo cơ sở dữ liệu .
gcloud
Sử dụng lệnh gcloud alpha firestore databases create
.
gcloud alpha firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --type=DATABASE_TYPE \ [--delete-protection]
Thay thế như sau:
- DATABASE_ID : ID cơ sở dữ liệu hợp lệ .
- LOCATION : tên của nhiều vùng hoặc khu vực Cloud Firestore .
- DATABASE_TYPE :
firestore-native
cho chế độ Native hoặc datastore-mode cho chế độ Datastore.
--delete-protection
là cờ tùy chọn để kích hoạt tính năng bảo vệ xóa. Bạn không thể xóa cơ sở dữ liệu đã bật tính năng chống xóa cho đến khi bạn tắt cài đặt này. Cài đặt này bị tắt theo mặc định.
Firebase CLI
firebase firestore:databases:create DATABASE_ID \ --location=LOCATION \ [--delete-protection DELETE_PROTECTION_ENABLEMENT]
Thay thế như sau:
- DATABASE_ID : ID cơ sở dữ liệu hợp lệ .
- LOCATION : tên của nhiều vùng hoặc khu vực Cloud Firestore .
- DELETE_PROTECTION_ENABLEMENT :
ENABLED
hoặcDISABLED
. Cơ sở dữ liệu được tạo luôn ở chế độ Firestore Native.
--delete-protection
địa hình
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ế như sau:
- DATABASE_ID : ID cơ sở dữ liệu hợp lệ .
- LOCATION : tên của nhiều vùng hoặc khu vực Cloud Firestore .
- 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ố tùy chọn để kích hoạt tính năng bảo vệ xóa. Bạn không thể xóa cơ sở dữ liệu đã bật tính năng chống xóa cho đến khi bạn tắt cài đặt này. Cài đặt này bị tắt theo mặc định.
ID cơ sở dữ liệu
ID cơ sở dữ liệu hợp lệ bao gồm (default)
và ID tuân thủ các điều sau:
- Chỉ bao gồm các chữ cái, số và ký tự gạch nối (
-
). - Các chữ cái phải viết thường.
- Ký tự đầu tiên phải là một chữ cái.
- Ký tự cuối cùng phải là 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 ID như
f47ac10b-58cc-0372-8567-0e02b2c3d479
.
Nếu bạn xóa cơ sở dữ liệu, bạn không thể sử dụng lại ID cơ sở dữ liệu ngay sau 5 phút.
Xóa bảo vệ
Sử dụng tính năng bảo vệ xóa để ngăn chặn việc vô tình xóa cơ sở dữ liệu. Bạn không thể xóa cơ sở dữ liệu có bật tính năng bảo vệ xóa cho đến khi bạn tắt tính năng bảo vệ xóa. Tính năng bảo vệ xóa bị tắt theo mặc định. Bạn có thể bật tính năng bảo vệ xóa 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ệ xóa.
Thiết lập Quy tắc bảo mật Cloud Firestore cho cơ sở dữ liệu của bạn
Sử dụng Firebase CLI để triển khai Quy tắc bảo mật Cloud Firestore cho từng cơ sở dữ liệu của bạn. Tham khảo hướng dẫn quản lý và triển khai Cloud Firestore Security Rules .
Truy cập cơ sở dữ liệu được đặt tên bằng thư viện máy khách
Cơ sở dữ liệu được đặt tên bao gồm mọi cơ sở dữ liệu không được đặt tên (default)
. Theo mặc định, SDK Firebase và Thư viện ứng dụng khách API của Google kết nối với cơ sở dữ liệu Cloud Firestore (default)
trong một dự án. Để tạo một ứng dụng khách được kết nối với cơ sở dữ liệu được đặt tên, hãy đặt ID cơ sở dữ liệu khi bạn khởi tạo ứng dụng khách.
Liệt kê cơ sở dữ liệu
Sử dụng một trong các phương pháp sau để liệt kê cơ sở dữ liệu của bạn:
Bảng điều khiển
Trong Google Cloud Platform Console, hãy truy cập trang Cơ sở dữ liệu .
gcloud
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 chi tiết cơ sở dữ liệu
Để xem chi tiết về một cơ sở dữ liệu, hãy sử dụng lệnh gcloud firestore databases describe
:
gcloud
gcloud firestore databases describe --database=DATABASE_ID
Thay thế DATABASE_ID bằng ID cơ sở dữ liệu.
Cập nhật cấu hình cơ sở dữ liệu
Để cập nhật cài đặt cấu hình của cơ sở dữ liệu, hãy sử dụng lệnh gcloud alpha firestore databases update
. Sử dụng lệnh này để thay đổi kích hoạt hoặc vô hiệu hóa bảo vệ xóa.
Cập nhật cài đặt bảo vệ xóa
Để bật tính năng bảo vệ xóa trên cơ sở dữ liệu, hãy sử dụng lệnh gcloud alpha firestore databases update
với cờ --delete-protection
. Ví dụ:
gcloud
gcloud alpha firestore databases update --database=DATABASE_ID --delete-protection
Thay thế DATABASE_ID bằng ID cơ sở dữ liệu.
Để tắt tính năng bảo vệ xóa trên cơ sở dữ liệu, hãy sử dụng lệnh gcloud alpha firestore databases update
với cờ --no-delete-protection
. Ví dụ:
gcloud
gcloud alpha firestore databases update --database=DATABASE_ID --no-delete-protection
Thay thế DATABASE_ID bằng ID cơ sở dữ liệu.
Xóa cơ sở dữ liệu
Để xóa 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.
Nếu cơ sở dữ liệu đã bật cài đặt bảo vệ xóa, trước tiên bạn phải tắt bảo vệ xóa .
Nếu cơ sở dữ liệu chứa dữ liệu tìm kiếm của App Engine hoặc các thực thể blob , trước tiên bạn phải xóa dữ liệu đó.
Việc xóa cơ sở dữ liệu sẽ không tự động xóa bất kỳ trình kích hoạt Eventarc nào cho cơ sở dữ liệu đó. Trình kích hoạt 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 xóa trình kích hoạt .
Bảng điều khiển
Trong Google Cloud Platform Console, hãy truy cập 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 bạn muốn xóa. Nhấp vào Xóa . Một hộp thoại xuất hiện.
Trong cơ sở dữ liệu Xóa? hộp thoại, xác nhận xóa bằng cách nhập ID cơ sở dữ liệu vào trường văn bản. Nhấp vào Xóa . Bảng điều khiển thông báo cho bạn về hoạt động thành công hay thất bại.
Nếu thao tác không thành công, hãy xem chi tiết cơ sở dữ liệu và xác minh rằng tính năng bảo vệ xóa đã bị tắt. Để tắt tính năng bảo vệ chống xóa, hãy xem Cập nhật cài đặt bảo vệ xóa .
gcloud
Sử dụng lệnh `gcloud alpha firestoredatabase delete` .
gcloud alpha firestore databases delete --database=DATABASE_ID
Thay thế DATABASE_ID bằng ID của cơ sở dữ liệu cần xóa.
Định cấu hình quyền truy cập trên mỗi 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 độ mỗi cơ sở dữ liệu. Các ví dụ sau 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 GCP Console .
Xem chính sách IAM hiện có
gcloud projects get-iam-policy PROJECT_ID
Đặt PROJECT_ID
thành ID 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 như sau:
-
PROJECT_ID
: ID dự án của bạn -
EMAIL
: địa chỉ email đại diện cho một tài khoản Google cụ thể. Ví dụ:alice@example.com
. -
DATABASE_ID
: ID cơ sở dữ liệu. -
TITLE
: tiêu đề tùy chọn cho biểu thức. -
DESCRIPTION
: mô tả tùy chọn 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'
Đặt như sau:
-
PROJECT_ID
: ID dự án của bạn -
EMAIL
: địa chỉ email đại diện cho một tài khoản Google cụ thể. Ví dụ:alice@example.com
. -
DATABASE_ID
: ID cơ sở dữ liệu. -
TITLE
: tiêu đề tùy chọn cho biểu thức. -
DESCRIPTION
: mô tả tùy chọn của biểu thức.
Xóa 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 như sau:
-
PROJECT_ID
: ID dự án của bạn -
EMAIL
: địa chỉ email đại diện cho một tài khoản Google cụ thể. Ví dụ:alice@example.com
.
Giám sát đám mây
Số liệu của Cloud Firestore được báo cáo theo hai tài nguyên được giám sát.
Bạn có thể kiểm tra số liệu tổng hợp ở cấp cơ sở dữ liệu bằng cách xem firestore.googleapis.com/Database
. Các số liệu được báo cáo trong 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 bộ phận hỗ trợ để yêu cầu tăng giới hạn này.
- Bạn không thể xóa cơ sở dữ liệu của mình nếu nó chứa bất kỳ dữ liệu tìm kiếm GAE và/hoặc thực thể blob nào . Vui lòng sử dụng api xóa chỉ mục để xóa dữ liệu tìm kiếm GAE và api xóa Blobstore để xóa dữ liệu Blobstore.
- Bạn không thể sử dụng lại ID cơ sở dữ liệu cho đến 5 phút sau khi quá trình xóa xảy ra.
- Cloud Function v1 không hỗ trợ cơ sở dữ liệu Firestore Named. Vui lòng sử dụng Trình kích hoạt Cloud Firestore (Thế hệ 2) để định cấu hình các sự kiện cho cơ sở dữ liệu được đặt tên.
- Trình kích hoạt chức năng Firestore v1 và trình kích hoạt sự kiện Firestore có thể ngừng hoạt động sau khi cơ sở dữ liệu bị xóa, ngay cả khi cơ sở dữ liệu mới được tạo có cùng tên.