CLI Firebase là một công cụ cho phép bạn quản lý và định cấu hình các sản phẩm và dịch vụ của Firebase từ dòng lệnh.
CLI cung cấp các lệnh có thể dùng để thực hiện nhiều tác vụ Data Connect, chẳng hạn như tạo dự án Data Connect mới, khởi chạy thư mục làm việc cục bộ tương ứng, thiết lập trình mô phỏng Data Connect, liệt kê tài nguyên Data Connect, tạo SDK ứng dụng và nhiều tác vụ khác.
Lệnh thiết lập
Thêm Data Connect vào dự án Firebase
firebase init
Sử dụng firebase init
để thiết lập cấu hình dự án cục bộ mới. Quy trình công việc này tạo hoặc cập nhật tệp cấu hình Firebase trong thư mục của bạn.
firebase init
Quy trình firebase init
hướng dẫn bạn thiết lập dịch vụ và cơ sở dữ liệu, đồng thời tuỳ ý cài đặt trình mô phỏng Data Connect và định cấu hình các SDK đã tạo.
Thiết lập dịch vụ và cơ sở dữ liệu
Nếu bạn chọn dataconnect
để thiết lập sản phẩm, CLI sẽ nhắc bạn nhập tên và vị trí mới của dịch vụ, cũng như liệu bạn có nên liên kết phiên bản Cloud SQL hiện có cho phiên bản PostgreSQL hay tạo phiên bản mới.
Nếu một thực thể hiện có được liên kết, CLI sẽ kiểm tra các chế độ cài đặt tương thích, chẳng hạn như xác thực IAM và địa chỉ IP công khai.
Thiết lập Local Emulator Suite
Quy trình CLI cung cấp tính năng thiết lập trình mô phỏng, bao gồm cả trình mô phỏng Data Connect.
Lệnh của trình mô phỏng Data Connect
Khởi động trình mô phỏng Data Connect
emulators:start/exec
firebase emulators:start/exec
Sử dụng phiên bản Local Emulator Suite của trình mô phỏng Data Connect ở chế độ tương tác với start
hoặc chế độ không tương tác, do tập lệnh điều khiển với exec
.
Xuất và nhập dữ liệu PostgreSQL cục bộ
Để hỗ trợ việc tạo bản mô hình và kiểm thử cục bộ cũng như tích hợp liên tục, bạn có thể xuất dữ liệu được lưu trữ trong một thực thể cơ sở dữ liệu cục bộ và nhập dữ liệu đó giữa các lần lặp lại phát triển và chạy kiểm thử.
Dữ liệu xuất được lưu trữ dưới dạng ảnh chụp nhanh của cơ sở dữ liệu PostgreSQL cục bộ.
Data Connect cung cấp ba phương pháp xuất/nhập:
- Tự động xuất/nhập được định cấu hình trong
firebase.json
để cung cấp bản sao lưu tổng quan nhanh khi tắt và khởi động trình mô phỏng - Xuất/nhập theo cách thủ công bằng CLI
- Xuất/nhập thủ công bằng giao diện tiện ích VS Code
Tính năng tự động xuất và nhập được định cấu hình trong firebase.json
Để sao lưu dữ liệu giữa các phiên phát triển, hãy chỉ định vị trí sao lưu tự động trong trình tự firebase init
. Vị trí này được lưu trữ trong firebase.json
của bạn trong trường emulators.dataconnect.dataDir
. Mọi thay đổi về dữ liệu mà bạn thực hiện sẽ tự động được lưu tại đây giữa các lần chạy trình mô phỏng, vì vậy, tính năng này rất hữu ích trong quá trình kiểm thử và khám phá cục bộ.
Xuất thủ công: emulators:export
và emulators:start/exec --import
Trong khi trình mô phỏng Data Connect đang chạy, trong một thiết bị đầu cuối riêng, hãy chạy lệnh firebase emulators:export
để lưu bản tổng quan nhanh về dữ liệu của bạn.
Sau đó, bạn có thể khởi động trình mô phỏng từ ảnh chụp nhanh đó bằng cách sử dụng cờ --import
.
# Export data from local emulator from a separate terminal
firebase emulators:export --only dataconnect <export_directory>
# Import data from local directory, here using emulators:exec
firebase emulators:exec ./<your-test-script>.sh --only dataconnect --import <import_directory>
Xuất/nhập thủ công: Tiện ích VS Code
Trong giao diện người dùng của tiện ích VS Code, trong khi trình mô phỏng đang chạy, hãy sử dụng nút Export emulator data (Xuất dữ liệu trình mô phỏng) để xuất dữ liệu nhằm xuất nội dung cơ sở dữ liệu hiện tại. Vị trí xuất mặc định là thư mục exportedData
ở gốc thư mục dự án.
Bạn có thể nhập dữ liệu này bằng CLI, như mô tả trong phần trước. Bạn cũng có thể nhập dữ liệu này trước khi khởi động trình mô phỏng thông qua VS Code bằng cách nhấp vào đường liên kết Configure emulator (Định cấu hình trình mô phỏng) và thiết lập Import Path (Đường dẫn nhập).
Lệnh quản lý giản đồ và trình kết nối
Phần này chứa thông tin tham khảo về CLI cho các lệnh bạn sử dụng để quản lý giao thức và trình kết nối.
Để biết cách sử dụng các trường hợp và phương pháp đề xuất liên quan đến các lệnh này, hãy xem hướng dẫn quản lý giản đồ và trình kết nối.
Triển khai giản đồ và trình kết nối
triển khai
firebase deploy
Lệnh này triển khai tài nguyên cho các dịch vụ Data Connect được lập chỉ mục trong firebase.json. Hệ thống sẽ thực hiện di chuyển giản đồ và cập nhật trình kết nối nếu cần.
Lệnh | Nội dung mô tả | |
---|---|---|
firebase deploy |
Cờ | Nội dung mô tả |
–-only dataconnect |
Triển khai giản đồ và trình kết nối cho tất cả các dịch vụ Data Connect cho dự án này, nhưng không triển khai các tài nguyên sản phẩm Firebase khác. | |
–-only dataconnect:serviceId |
Triển khai giản đồ và trình kết nối cho dịch vụ Data Connect đã chỉ định. | |
–-only dataconnect:serviceId:connectorId |
Triển khai một trình kết nối duy nhất cho dịch vụ Data Connect đã chỉ định. | |
–-only dataconnect:serviceId:schema |
Triển khai giản đồ cho dịch vụ Data Connect đã chỉ định. |
Với cờ –-only
, bạn có thể truyền các giá trị được phân tách bằng dấu phẩy để triển khai bất kỳ nhóm tài nguyên nào mà bạn muốn.
firebase deploy --only dataconnect:service1:schema,dataconnect:service2
Liệt kê các dịch vụ, giản đồ và trình kết nối Data Connect
dataconnect:services:list
firebase dataconnect:services:list
Lệnh này in thông tin cơ bản về các dịch vụ, giản đồ và trình kết nối được triển khai trên một dự án.
So sánh và di chuyển giản đồ SQL
Khi bạn chạy firebase deploy
, CLI sẽ so sánh giản đồ SQL trước khi triển khai bản cập nhật. Bạn cũng có thể trực tiếp so sánh và cập nhật bằng một tập hợp các lệnh dataconnect:sql
.
dataconnect:sql:diff
firebase dataconnect:sql:diff
Lệnh này so sánh giản đồ cục bộ của một dịch vụ với giản đồ hiện tại của cơ sở dữ liệu Cloud SQL tương ứng. Lệnh này sẽ in ra các lệnh sẽ được chạy để di chuyển cơ sở dữ liệu sang giản đồ mới.
Lệnh | Nội dung mô tả | |
---|---|---|
firebase dataconnect:sql:diff |
Cờ/Thông số | Nội dung mô tả |
serviceId |
Chỉ định dịch vụ. Nếu bạn bỏ qua, hãy in nội dung khác biệt cho tất cả các dịch vụ trong firebase.json. |
dataconnect:sql:migrate
firebase dataconnect:sql:migrate
Lệnh này áp dụng các thay đổi về giản đồ cục bộ cho cơ sở dữ liệu Cloud SQL của dịch vụ.
Khi bạn thiết lập một dự án Data Connect cục bộ mới, với tệp dataconnect.yaml
mặc định, hành vi của lệnh dataconnect:sql:migrate
sẽ nhắc bạn về mọi thay đổi bắt buộc, sau đó nhắc bạn về mọi thay đổi không bắt buộc trước khi thực thi các thay đổi đó. Bạn có thể sửa đổi hành vi này để luôn bao gồm hoặc bỏ qua các thay đổi không bắt buộc bằng cách cập nhật cấu hình dataconnect.yaml
, như đã thảo luận trong phần di chuyển giản đồ ở chế độ nghiêm ngặt hoặc tương thích
Trong môi trường tương tác, CLI hiển thị từng câu lệnh SQL di chuyển (và liệu câu lệnh đó có gây huỷ bỏ hay không) và nhắc bạn về những thay đổi mà bạn muốn áp dụng.
Việc truyền cờ --force
tương đương với việc chấp nhận tất cả lời nhắc.
Trong môi trường không tương tác:
- Nếu không có
--force
, hệ thống sẽ chỉ thực hiện các thay đổi không gây huỷ hoại. Nếu có các thay đổi gây hại, CLI sẽ huỷ mà không thực hiện thay đổi nào. - Với
--force
, tất cả thay đổi đều được thực hiện. Nếu có bất kỳ thay đổi huỷ bỏ nào, các thay đổi đó sẽ được in và bạn sẽ được nhắc xem có muốn tiếp tục hay không, trừ phi bạn cung cấp cờ--force
.
Lệnh | Nội dung mô tả | |
---|---|---|
firebase dataconnect:sql:migrate |
Cờ | Nội dung mô tả |
serviceId |
Di chuyển cơ sở dữ liệu cho dịch vụ được chỉ định. serviceId được suy luận nếu dự án của bạn chỉ có một dịch vụ. | |
–-force |
Tự động chấp nhận lời nhắc. |
Cũng như các cờ --only
khác, bạn có thể cung cấp nhiều dịch vụ được phân tách bằng dấu phẩy.
Di chuyển giản đồ ở chế độ nghiêm ngặt hoặc tương thích
Quá trình di chuyển giản đồ Data Connect có hai chế độ xác thực giản đồ khác nhau: nghiêm ngặt và tương thích. Tính năng xác thực ở chế độ nghiêm ngặt yêu cầu lược đồ cơ sở dữ liệu khớp chính xác với lược đồ ứng dụng trước khi có thể triển khai lược đồ ứng dụng. Việc xác thực chế độ tương thích yêu cầu giản đồ cơ sở dữ liệu phải tương thích với giản đồ ứng dụng, nghĩa là các phần tử trong cơ sở dữ liệu không được giản đồ ứng dụng sử dụng sẽ không được sửa đổi.
Các chế độ xác thực giản đồ và phương pháp hay nhất để di chuyển giản đồ này được đề cập trong hướng dẫn quản lý giản đồ và trình kết nối
Chế độ xác thực được xác định bằng cách sử dụng khoá schemaValidation
trong tệp dataconnect.yaml
. Nếu bạn không chỉ định schemaValidation
, CLI sẽ áp dụng các thay đổi tương thích và nhắc bạn trước khi thực thi bất kỳ thay đổi nghiêm ngặt nào. Xem tài liệu tham khảo về cấu hình.
Quản lý các thay đổi đối với trình kết nối
Khi bạn chạy firebase deploy
, CLI sẽ bắt đầu cập nhật các trình kết nối hiện có. CLI phân tích các thay đổi đối với từng trình kết nối và đưa ra một tập hợp thông báo đánh giá liên quan đến các thay đổi đối với trình kết nối có thể gây ra hành vi không mong muốn (thông báo ở cấp độ cảnh báo) hoặc sự cố (thông báo ở cấp độ sự cố) trong các phiên bản trước của mã ứng dụng.
Đánh giá tác động | Trường hợp |
---|---|
Cấp độ cảnh báo (tương thích với dây, có thể thay đổi hành vi) |
|
Mức độ phá vỡ (không tương thích với dây, có thể phá vỡ ứng dụng) |
|
Mức độ phá vỡ (không tương thích với dây, sẽ phá vỡ ứng dụng) |
|
Trong môi trường tương tác, CLI sẽ hiển thị từng kết quả đánh giá về trình kết nối và nhắc bạn về những thay đổi mà bạn muốn áp dụng. Việc truyền cờ --force
tương đương với việc chấp nhận tất cả các bài đánh giá.
Trong môi trường không tương tác:
- nếu chỉ xảy ra các hoạt động đánh giá ở cấp cảnh báo (có thể thay đổi hành vi), thì tất cả các trình kết nối sẽ được triển khai và cảnh báo sẽ được ghi lại vào thiết bị đầu cuối.
- nếu có bất kỳ đánh giá cấp độ vi phạm nào xảy ra, thì sẽ không có trình kết nối nào được triển khai và cảnh báo sẽ được ghi vào thiết bị đầu cuối. Bạn có thể ghi đè bằng cờ
--force
.
Mã uỷ quyền kiểm tra
Data Connect giúp bạn kiểm tra chiến lược uỷ quyền bằng cách phân tích mã trình kết nối khi bạn triển khai cho máy chủ bằng firebase deploy
từ CLI Firebase. Bạn có thể sử dụng quy trình kiểm tra này để xem xét cơ sở mã của mình.
Khi bạn triển khai trình kết nối, CLI sẽ xuất ra các kết quả đánh giá cho mã hoạt động hiện có, mã hoạt động đã sửa đổi và mã hoạt động mới trong trình kết nối.
Đối với các thao tác mới và đã sửa đổi, CLI sẽ đưa ra cảnh báo và nhắc bạn xác nhận khi bạn sử dụng một số cấp truy cập nhất định trong các thao tác mới hoặc khi bạn sửa đổi các thao tác hiện có để sử dụng các cấp truy cập đó.
Cảnh báo và lời nhắc luôn xuất hiện đối với:
PUBLIC
Ngoài ra, cảnh báo và lời nhắc sẽ xuất hiện ở các cấp truy cập sau đây khi bạn không tăng cường các cấp truy cập đó bằng bộ lọc sử dụng auth.uid
:
USER
USER_ANON
USER_EMAIL_VERIFIED
Để biết thêm thông tin về việc uỷ quyền, hãy tham khảo hướng dẫn uỷ quyền và chứng thực.
Lệnh SDK
Tạo SDK
dataconnect:sdk:generate
firebase dataconnect:sdk:generate
Lệnh này tạo các SDK đã nhập được khai báo trong connector.yaml.
Ngoài ra, hãy xem hướng dẫn về cách sử dụng SDK web, SDK Android và SDK iOS.
Lệnh | Nội dung mô tả | |
---|---|---|
firebase dataconnect:sdk:generate |
Cờ | Nội dung mô tả |
–-watch |
Giữ cho quy trình chạy và tạo SDK mới bất cứ khi nào bạn lưu các thay đổi đối với giản đồ và tệp GQL của trình kết nối. Nếu quá trình tạo không thành công, lỗi sẽ được in vào stdout, mã được tạo sẽ không thay đổi và lệnh sẽ tiếp tục chạy. |
|
–-only connectorId:platform |
Chỉ tạo SDK cho một nền tảng và một trình kết nối. |
Với cờ –only
, bạn có thể truyền các giá trị được phân tách bằng dấu phẩy.
firebase dataconnect:sdk:generate –-only connector1, connector1:kotlin
Các lệnh quản lý Cloud SQL
Cấp vai trò SQL cho Cloud SQL
Data Connect hoạt động trên phiên bản PostgreSQL của riêng bạn được lưu trữ trên Cloud SQL. Các lệnh vai trò SQL giúp bạn quản lý quyền trên các bảng cơ sở dữ liệu.
dataconnect:sql:setup
firebase dataconnect:sql:setup
Lệnh này định cấu hình các quyền ban đầu, chung cho các bảng trong cơ sở dữ liệu.
Quy trình quản lý và cấp phép cơ sở dữ liệu mặc định giả định dự án của bạn sử dụng cơ sở dữ liệu mới (greenfield) và khi bạn gọi firebase deploy
, Data Connect sẽ hiển thị các thay đổi về giản đồ cơ sở dữ liệu cần thực hiện và thực hiện mọi quá trình di chuyển sau khi bạn phê duyệt. Nếu đây là quy trình bạn muốn, dataconnect:sql:setup
sẽ nhắc bạn cấp quyền, bao gồm cả quyền sở hữu giản đồ superuser
.
Đối với các cơ sở dữ liệu hiện có (cơ sở dữ liệu cũ), bạn có thể có quy trình làm việc riêng để di chuyển giản đồ và muốn tự duy trì quyền sở hữu giản đồ. Nếu đây là quy trình bạn muốn, hãy nhớ từ chối lời nhắc dataconnect:sql:setup
về việc Data Connect có nên xử lý việc di chuyển SQL cho bạn hay không.
Do từ chối, Data Connect sẽ chỉ cho phép read
và
write
truy cập vào các bảng cơ sở dữ liệu của bạn, nhưng quyền sở hữu giản đồ và việc di chuyển
vẫn thuộc trách nhiệm của bạn.
Để biết thêm nội dung thảo luận và trường hợp sử dụng, hãy xem phần Quản lý dịch vụ và cơ sở dữ liệu.
dataconnect:sql:grant
firebase dataconnect:sql:grant
Trong một số trường hợp, bạn có thể muốn truy cập trực tiếp vào cơ sở dữ liệu để truy vấn hoặc cập nhật dữ liệu do ứng dụng Data Connect tạo. Để làm việc này, bạn cần cấp một trong các vai trò được xác định trong phần này cho người dùng hoặc tài khoản dịch vụ cần thiết.
Để biết thông tin chi tiết về các vai trò đã cấp, hãy xem phần Vai trò của người dùng PostgreSQL.
Vai trò | Vai trò SQL | Quyền | Cách sử dụng | Có thể cấp |
---|---|---|---|---|
trình đọc | firebasereader_<db_name>_<schema_name> |
Quyền chỉ đọc đối với cơ sở dữ liệu. Có thể thực hiện các thao tác SELECT trên tất cả các bảng trong giản đồ đã chỉ định. |
Lý tưởng cho người dùng hoặc dịch vụ yêu cầu truy xuất dữ liệu nhưng không sửa đổi. | Có |
writer | firebasewriter_<db_name>_<schema_name> |
Quyền đọc và ghi vào cơ sở dữ liệu. Có thể thực hiện các thao tác SELECT , INSERT , UPDATE , DELETE và TRUNCATE trên tất cả bảng trong giản đồ. |
Phù hợp với người dùng hoặc dịch vụ cần sửa đổi dữ liệu trong cơ sở dữ liệu. | Có |
chủ sở hữu | firebaseowner_<db_name>_<schema_name> |
Chủ sở hữu giản đồ. Có tất cả đặc quyền trên tất cả các bảng và trình tự trong giản đồ. |
Vai trò này, kết hợp với vai trò roles/cloudsql.client của IAM, cấp quyền thực hiện quá trình di chuyển trên cơ sở dữ liệu. Ví dụ: khi gọi firebase dataconnect:sql:migrate . |
Có |
siêu người dùng | cloudsqlsuperuser |
Vai trò người dùng cấp cao tích hợp sẵn có toàn quyền trên cơ sở dữ liệu. Ngoài các quyền của chủ sở hữu, quyền này có thể tạo giản đồ, xoá giản đồ, cài đặt tiện ích và thực hiện mọi tác vụ quản trị khác. Truy cập trong CLI bằng cách đăng nhập bằng "firebasesuperuser". |
Bắt buộc để cài đặt tiện ích, tạo giản đồ ban đầu và cấp bất kỳ vai trò SQL nào có thể cấp cho người dùng khác. Nếu người dùng không phải quản trị viên cần có đặc quyền của quản trị viên cấp cao, thì quá trình di chuyển sẽ không thành công và nhắc người dùng yêu cầu quản trị viên cơ sở dữ liệu (tức là người dùng có roles/cloudsql.admin ) chạy các lệnh SQL đặc quyền. |
Được cấp cho người dùng có roles/cloudsql.admin và không thể được cấp trực tiếp từ CLI Firebase |
Lệnh | Nội dung mô tả | |
---|---|---|
firebase dataconnect:sql:grant |
Cờ/Thông số | Nội dung mô tả |
-R, --role vai trò |
Vai trò SQL cần cấp, một trong các vai trò sau: chủ sở hữu, người viết hoặc người đọc. | |
-E, --email email_address |
Email của người dùng hoặc tài khoản dịch vụ mà bạn muốn cấp vai trò. |
Tuỳ chọn chung
Các tuỳ chọn chung sau đây áp dụng cho tất cả lệnh:
--json
chuyển đổi đầu ra CLI sang JSON để các công cụ khác phân tích cú pháp.--noninteractive
và--interactive
ghi đè, nếu cần, tính năng tự động phát hiện môi trường không phải TTY.