Tài liệu tham khảo về Firebase CLI

Firebase CLI (GitHub) cung cấp nhiều công cụ để quản lý, xem và triển khai cho các dự án Firebase.

Trước khi sử dụng Giao diện dòng lệnh (CLI) của Firebase, hãy thiết lập một dự án Firebase.

Thiết lập hoặc cập nhật CLI

Cài đặt Giao diện dòng lệnh (CLI) của Firebase

Bạn có thể cài đặt Giao diện dòng lệnh (CLI) của Firebase bằng cách sử dụng phương thức phù hợp với hệ điều hành, cấp độ trải nghiệm và/hoặc trường hợp sử dụng của bạn. Bất kể cài đặt CLI bằng cách nào, bạn đều có quyền truy cập vào cùng một chức năng và lệnh firebase.

Windows macOS Linux

Windows

Bạn có thể cài đặt Giao diện dòng lệnh (CLI) của Firebase dành cho Windows bằng một trong các cách sau:

Lựa chọn Mô tả Đề xuất cho...
tệp nhị phân độc lập Tải tệp nhị phân độc lập xuống cho CLI. Sau đó, bạn có thể truy cập vào tệp thực thi để mở một shell nơi bạn có thể chạy lệnh firebase. Nhà phát triển mới

Nhà phát triển chưa sử dụng hoặc chưa quen thuộc với Node.js
npm Sử dụng npm (Trình quản lý gói nút) để cài đặt CLI và bật lệnh firebase có sẵn trên toàn cầu. Nhà phát triển sử dụng Node.js

tệp nhị phân độc lập

Để tải xuống và chạy tệp nhị phân cho Firebase CLI, hãy làm theo các bước sau:

  1. Tải tệp nhị phân Firebase CLI cho Windows.

  2. Truy cập vào tệp nhị phân để mở một shell nơi bạn có thể chạy lệnh firebase.

  3. Tiếp tục đăng nhập và kiểm tra CLI.

hải lý/phút

Nếu muốn sử dụng npm (Trình quản lý gói nút) để cài đặt Giao diện dòng lệnh (CLI) của Firebase, hãy làm theo các bước sau:

  1. Cài đặt Node.js bằng nvm-windows (Trình quản lý phiên bản nút). Việc cài đặt Node.js sẽ tự động cài đặt các công cụ lệnh npm.

  2. Cài đặt Giao diện dòng lệnh (CLI) của Firebase qua npm bằng cách chạy lệnh sau:

    npm install -g firebase-tools

    Lệnh này bật lệnh firebase có thể sử dụng trên toàn hệ thống.

  3. Tiếp tục đăng nhập và kiểm tra CLI.

macOS hoặc Linux

Bạn có thể cài đặt Firebase CLI cho macOS hoặc Linux bằng một trong các phương án sau:

Lựa chọn Mô tả Đề xuất cho...
tập lệnh cài đặt tự động Chạy một lệnh duy nhất giúp tự động phát hiện hệ điều hành của bạn, tải bản phát hành CLI mới nhất xuống, sau đó bật lệnh firebase có thể sử dụng trên toàn cầu. Nhà phát triển mới

Nhà phát triển chưa sử dụng hoặc chưa quen thuộc với Node.js

Triển khai tự động trong môi trường CI/CD
tệp nhị phân độc lập Tải tệp nhị phân độc lập xuống cho CLI. Sau đó, bạn có thể định cấu hình và chạy tệp nhị phân cho phù hợp với quy trình làm việc của mình. Quy trình làm việc có thể tuỳ chỉnh toàn bộ bằng CLI
npm Sử dụng npm (Trình quản lý gói nút) để cài đặt CLI và bật lệnh firebase có sẵn trên toàn cầu. Nhà phát triển sử dụng Node.js

tập lệnh tự động cài đặt

Để cài đặt Giao diện dòng lệnh (CLI) của Firebase bằng tập lệnh cài đặt tự động, hãy làm theo các bước sau:

  1. Chạy lệnh cURL sau:

    curl -sL https://firebase.tools | bash

    Tập lệnh này sẽ tự động phát hiện hệ điều hành của bạn, tải bản phát hành Firebase CLI mới nhất xuống, sau đó bật lệnh firebase được cung cấp trên toàn cầu.

  2. Tiếp tục đăng nhập và kiểm tra CLI.

Để biết thêm ví dụ và thông tin chi tiết về tập lệnh cài đặt tự động, hãy tham khảo mã nguồn của tập lệnh tại firebase.tools.

tệp nhị phân độc lập

Để tải và chạy tệp nhị phân cho Giao diện dòng lệnh (CLI) của Firebase dành riêng cho hệ điều hành của bạn, hãy làm theo các bước sau:

  1. Tải tệp nhị phân Firebase CLI xuống cho hệ điều hành của bạn: macOS | Linux

  2. (Không bắt buộc) Thiết lập lệnh firebase có thể sử dụng trên toàn cầu.

    1. Tạo tệp thực thi nhị phân bằng cách chạy chmod +x ./firebase_tools.
    2. Thêm đường dẫn của tệp nhị phân vào PATH của bạn.
  3. Tiếp tục đăng nhập và kiểm tra CLI.

hải lý/phút

Để sử dụng npm (Trình quản lý gói nút) nhằm cài đặt Giao diện dòng lệnh (CLI) của Firebase, hãy làm theo các bước sau:

  1. Cài đặt Node.js bằng nvm (Trình quản lý phiên bản nút).
    Việc cài đặt Node.js sẽ tự động cài đặt các công cụ lệnh npm.

  2. Cài đặt Giao diện dòng lệnh (CLI) của Firebase qua npm bằng cách chạy lệnh sau:

    npm install -g firebase-tools

    Lệnh này bật lệnh firebase có thể sử dụng trên toàn hệ thống.

  3. Tiếp tục đăng nhập và kiểm tra CLI.

Đăng nhập và thử nghiệm Giao diện dòng lệnh (CLI) của Firebase

Sau khi cài đặt CLI, bạn phải xác thực. Sau đó, bạn có thể xác nhận xác thực bằng cách liệt kê các dự án Firebase của mình.

  1. Đăng nhập vào Firebase bằng Tài khoản Google của bạn bằng cách chạy lệnh sau:

    firebase login

    Lệnh này sẽ kết nối máy cục bộ của bạn với Firebase và cấp cho bạn quyền truy cập vào các dự án Firebase của mình.

  2. Hãy kiểm tra để đảm bảo CLI được cài đặt đúng cách và truy cập vào tài khoản của bạn bằng cách liệt kê các dự án Firebase. Chạy lệnh sau:

    firebase projects:list

    Danh sách hiển thị phải giống với các dự án Firebase được liệt kê trong bảng điều khiển của Firebase.

Cập nhật lên phiên bản CLI mới nhất

Nhìn chung, bạn muốn sử dụng phiên bản Firebase CLI mới nhất.

Cách bạn cập nhật phiên bản CLI tuỳ thuộc vào hệ điều hành và cách bạn cài đặt CLI.

Windows

macOS

  • tập lệnh cài đặt tự động: Chạy curl -sL https://firebase.tools | upgrade=true bash
  • tệp nhị phân độc lập: Tải phiên bản mới xuống rồi thay thế phiên bản đó trên hệ thống của bạn
  • npm: Chạy npm install -g firebase-tools

Linux

  • tập lệnh cài đặt tự động: Chạy curl -sL https://firebase.tools | upgrade=true bash
  • tệp nhị phân độc lập: Tải phiên bản mới xuống rồi thay thế phiên bản đó trên hệ thống của bạn
  • npm: Chạy npm install -g firebase-tools

Sử dụng CLI với các hệ thống CI

Firebase CLI yêu cầu một trình duyệt để hoàn tất quy trình xác thực, nhưng CLI hoàn toàn tương thích với CI và các môi trường không có giao diện người dùng khác.

  1. Trên máy có trình duyệt, hãy cài đặt Firebase CLI.

  2. Bắt đầu quá trình đăng nhập bằng cách chạy lệnh sau:

    firebase login:ci
  3. Truy cập URL được cung cấp, rồi đăng nhập bằng Tài khoản Google.

  4. In mã làm mới mới. Phiên CLI hiện tại sẽ không bị ảnh hưởng.

  5. Lưu trữ mã thông báo đầu ra một cách an toàn nhưng có thể truy cập được trong hệ thống CI.

  6. Sử dụng mã thông báo này khi chạy các lệnh firebase. Bạn có thể sử dụng một trong hai tuỳ chọn sau:

    • Cách 1: Lưu trữ mã thông báo dưới dạng biến môi trường FIREBASE_TOKEN. Hệ thống của bạn sẽ tự động dùng mã thông báo này.

    • Cách 2: Chạy tất cả các lệnh firebase có cờ --token TOKEN trong hệ thống CI.
      Đây là thứ tự ưu tiên khi tải mã thông báo: cờ, biến môi trường, dự án Firebase mong muốn.

Khởi chạy dự án Firebase

Nhiều tác vụ phổ biến được thực hiện khi sử dụng CLI (chẳng hạn như triển khai cho một dự án Firebase) yêu cầu phải có thư mục dự án. Bạn thiết lập một thư mục dự án bằng lệnh firebase init. Thư mục dự án thường giống với thư mục gốc kiểm soát nguồn và sau khi chạy firebase init, thư mục đó chứa tệp cấu hình firebase.json.

Để khởi chạy một dự án Firebase mới, hãy chạy lệnh sau từ trong thư mục của ứng dụng:

firebase init

Lệnh firebase init hướng dẫn bạn thiết lập thư mục dự án và một số sản phẩm của Firebase. Trong quá trình khởi chạy dự án, Giao diện dòng lệnh (CLI) của Firebase yêu cầu bạn hoàn thành các thao tác sau:

  • Chọn các sản phẩm Firebase mà bạn muốn để thiết lập trong dự án Firebase.

    Bước này nhắc bạn đặt cấu hình cho các tệp cụ thể của sản phẩm đã chọn. Để biết thêm thông tin chi tiết về các cấu hình này, hãy tham khảo tài liệu của sản phẩm cụ thể (ví dụ: Lưu trữ). Xin lưu ý rằng bạn luôn có thể chạy firebase init sau để thiết lập các sản phẩm khác của Firebase.

  • Chọn một dự án Firebase mặc định.

    Bước này liên kết thư mục dự án hiện tại với một dự án Firebase để các lệnh dành riêng cho dự án (như firebase deploy) chạy dựa trên dự án Firebase phù hợp.

    Bạn cũng có thể liên kết nhiều dự án Firebase (chẳng hạn như một dự án thử nghiệm và một dự án chính thức) với cùng một thư mục dự án.

Khi kết thúc quá trình khởi chạy, Firebase sẽ tự động tạo hai tệp sau tại gốc của thư mục ứng dụng cục bộ của bạn:

  • Tệp cấu hình firebase.json liệt kê cấu hình dự án của bạn.

  • Tệp .firebaserc lưu trữ aliases của dự án.

Tệp firebase.json

Lệnh firebase init tạo một tệp cấu hình firebase.json trong gốc của thư mục dự án.

Bạn cần có tệp firebase.json để triển khai tài sản bằng Giao diện dòng lệnh (CLI) của Firebase vì tệp này chỉ định các tệp và chế độ cài đặt trong thư mục dự án được triển khai cho dự án Firebase. Vì bạn có thể xác định một số chế độ cài đặt trong thư mục dự án hoặc bảng điều khiển của Firebase, hãy đảm bảo rằng bạn giải quyết được mọi xung đột triển khai có thể xảy ra.

Bạn có thể định cấu hình hầu hết các tùy chọn Lưu trữ Firebase ngay trong tệp firebase.json. Tuy nhiên, đối với các dịch vụ Firebase khác có thể được triển khai bằng Giao diện dòng lệnh (CLI) của Firebase, lệnh firebase init sẽ tạo các tệp cụ thể để bạn có thể xác định chế độ cài đặt cho các dịch vụ đó, chẳng hạn như tệp index.js cho Chức năng đám mây. Bạn cũng có thể thiết lập hóc triển khai trước hoặc sau triển khai trong tệp firebase.json.

Sau đây là ví dụ về tệp firebase.json có chế độ cài đặt mặc định nếu bạn chọn dịch vụ Lưu trữ Firebase, Cloud Firestore và Cloud Functions for Firebase (với các lựa chọn chọn nguồn TypeScript và tìm lỗi mã nguồn) trong quá trình khởi chạy.

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  },
  "firestore": {
      "rules": "firestore.rules",
      "indexes": "firestore.indexes.json"
  },
  "functions": {
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\" run lint",
      "npm --prefix \"$RESOURCE_DIR\" run build"
    ]
  }
}

Mặc dù firebase.json được sử dụng theo mặc định, nhưng bạn có thể truyền cờ --config PATH để chỉ định tệp cấu hình thay thế.

Cấu hình cho nhiều cơ sở dữ liệu Cloud Firestore

Khi bạn chạy firebase init, tệp firebase.json sẽ chứa một khoá firestore duy nhất tương ứng với cơ sở dữ liệu mặc định của dự án, như minh hoạ ở trên.

Nếu dự án của bạn chứa nhiều cơ sở dữ liệu Cloud Firestore, hãy chỉnh sửa tệp firebase.json để liên kết các Quy tắc bảo mật của Cloud Firestore và các tệp nguồn chỉ mục cơ sở dữ liệu với từng cơ sở dữ liệu. Sửa đổi tệp bằng một mảng JSON, với một mục nhập cho mỗi cơ sở dữ liệu.

      "firestore": [
        {
          "database": "default",
          "rules": "firestore.default.rules",
          "indexes": "firestore.default.indexes.json"
        },
        {
          "database": "ecommerce",
          "rules": "firestore.ecommerce.rules",
          "indexes": "firestore.ecommerce.indexes.json"
        }
      ],

Các tệp Chức năng đám mây cần bỏ qua khi triển khai

Tại thời điểm triển khai hàm, CLI tự động chỉ định danh sách các tệp trong thư mục functions cần bỏ qua. Thao tác này sẽ ngăn việc triển khai cho các tệp không liên quan trong phần phụ trợ. Những tệp này có thể làm tăng kích thước dữ liệu của quá trình triển khai.

Danh sách các tệp bị bỏ qua theo mặc định và hiển thị ở định dạng JSON là:

"ignore": [
  ".git",
  ".runtimeconfig.json",
  "firebase-debug.log",
  "firebase-debug.*.log",
  "node_modules"
]

Nếu bạn thêm giá trị tuỳ chỉnh của riêng mình cho ignore trong firebase.json, hãy đảm bảo rằng bạn giữ lại (hoặc thêm, nếu bị thiếu) danh sách các tệp nêu trên.

Quản lý bí danh của dự án

Bạn có thể liên kết nhiều dự án Firebase với cùng một thư mục dự án. Ví dụ: có thể bạn muốn sử dụng một dự án Firebase để thử nghiệm và một dự án khác để phát hành chính thức. Bằng cách sử dụng nhiều môi trường dự án, bạn có thể xác minh các thay đổi trước khi triển khai phiên bản chính thức. Lệnh firebase use cho phép bạn chuyển đổi giữa các bí danh cũng như tạo bí danh mới.

Thêm bí danh dự án

Khi bạn chọn một dự án Firebase trong quá trình khởi chạy dự án, dự án đó sẽ tự động được chỉ định bí danh là default. Tuy nhiên, để cho phép các lệnh dành riêng cho dự án chạy dựa trên dự án Firebase khác nhưng vẫn sử dụng cùng một thư mục dự án, hãy chạy lệnh sau từ trong thư mục dự án của bạn:

firebase use --add

Lệnh này sẽ nhắc bạn chọn một dự án Firebase khác và chỉ định dự án đó làm bí danh. Các phép gán bí danh được ghi vào tệp .firebaserc bên trong thư mục dự án của bạn.

Sử dụng tên đại diện của dự án

Để sử dụng các bí danh của dự án Firebase được chỉ định, hãy chạy bất kỳ lệnh nào sau đây trong thư mục dự án của bạn.

Lệnh Nội dung mô tả
firebase use Xem danh sách các bí danh hiện được xác định cho thư mục dự án của bạn
firebase use \
PROJECT_ID|ALIAS
Hướng dẫn tất cả các lệnh chạy dựa trên dự án Firebase đã chỉ định.
CLI sử dụng dự án này là "dự án đang hoạt động" hiện tại.
firebase use --clear Xoá dự án đang hoạt động.

Chạy firebase use PROJECT_ID|ALIAS để đặt một dự án mới đang hoạt động trước khi chạy các lệnh CLI khác.

firebase use \
--unalias PROJECT_ALIAS
Xoá một đại diện khỏi thư mục dự án của bạn.

Bạn có thể ghi đè nội dung đang được dùng làm dự án đang hoạt động bằng cách truyền cờ --project bằng bất kỳ lệnh CLI nào. Ví dụ: Bạn có thể đặt CLI để chạy dựa trên dự án Firebase mà bạn đã chỉ định bí danh staging. Nếu muốn chạy một lệnh duy nhất đối với dự án Firebase mà bạn đã chỉ định bí danh prod, thì bạn có thể chạy firebase deploy --project=prod chẳng hạn.

Kiểm soát nguồn và bí danh dự án

Nhìn chung, bạn nên kiểm tra tệp .firebaserc trong phần kiểm soát nguồn để cho phép nhóm của bạn chia sẻ bí danh của dự án. Tuy nhiên, đối với các dự án nguồn mở hoặc mẫu khởi động, bạn thường không nên kiểm tra trong tệp .firebaserc của mình.

Nếu có một dự án phát triển chỉ dành cho mục đích sử dụng, bạn có thể chuyển cờ --project qua từng lệnh hoặc chạy firebase use PROJECT_ID mà không cần chỉ định một bí danh cho dự án Firebase đó.

Phân phát và thử nghiệm cục bộ dự án Firebase của bạn

Bạn có thể xem và thử nghiệm dự án Firebase của mình trên các URL được lưu trữ cục bộ trước khi triển khai phiên bản chính thức. Nếu chỉ muốn kiểm thử một số tính năng, bạn có thể sử dụng danh sách được phân tách bằng dấu phẩy trong cờ trên lệnh firebase serve.

Chạy lệnh sau từ gốc của thư mục dự án cục bộ nếu bạn muốn thực hiện một trong các tác vụ sau:

  • Xem nội dung tĩnh cho ứng dụng được lưu trữ trên Firebase.
  • Sử dụng Chức năng đám mây để tạo nội dung động cho Lưu trữ Firebase và bạn muốn sử dụng các hàm HTTP chính thức (triển khai) để mô phỏng tính năng Lưu trữ trên một URL cục bộ.
firebase serve --only hosting

Mô phỏng dự án của bạn bằng các hàm HTTP cục bộ

Chạy bất kỳ lệnh nào sau đây từ thư mục dự án để mô phỏng dự án của bạn bằng cách sử dụng các hàm HTTP cục bộ.

  • Để mô phỏng các hàm HTTP và lưu trữ để kiểm thử trên các URL cục bộ, hãy sử dụng một trong các lệnh sau:

    firebase serve
    firebase serve --only functions,hosting // uses a flag
  • Để chỉ mô phỏng các hàm HTTP, hãy sử dụng lệnh sau:

    firebase serve --only functions

Kiểm thử từ các thiết bị cục bộ khác

Theo mặc định, firebase serve chỉ phản hồi các yêu cầu từ localhost. Điều này có nghĩa là bạn có thể truy cập vào nội dung được lưu trữ từ trình duyệt web của máy tính chứ không thể truy cập từ các thiết bị khác trên mạng. Nếu bạn muốn kiểm thử từ các thiết bị cục bộ khác, hãy sử dụng cờ --host như sau:

firebase serve --host 0.0.0.0  // accepts requests to any host

Triển khai cho dự án Firebase

Firebase CLI quản lý việc triển khai mã và tài sản cho dự án Firebase của bạn, bao gồm:

  • Bản phát hành mới cho các trang web Lưu trữ Firebase
  • Các chức năng đám mây mới, đã cập nhật hoặc hiện có cho Firebase
  • Các quy tắc cho Cơ sở dữ liệu theo thời gian thực của Firebase
  • Quy tắc đối với Cloud Storage cho Firebase
  • Quy tắc cho Cloud Firestore
  • Chỉ mục cho Cloud Firestore

Để triển khai cho một dự án Firebase, hãy chạy lệnh sau từ thư mục dự án của bạn:

firebase deploy

Bạn có thể tuỳ ý thêm nhận xét vào mỗi lần triển khai của mình. Nhận xét này sẽ hiển thị cùng với thông tin triển khai khác trên trang Lưu trữ Firebase của dự án. Ví dụ:

firebase deploy -m "Deploying the best new feature ever."

Khi bạn dùng lệnh firebase deploy, hãy lưu ý những điều sau:

  • Để triển khai tài nguyên từ một thư mục dự án, thư mục dự án phải có tệp firebase.json. Tệp này được tạo tự động cho bạn bằng lệnh firebase init.

  • Theo mặc định, firebase deploy sẽ tạo một bản phát hành cho tất cả tài nguyên có thể triển khai trong thư mục dự án của bạn. Để triển khai các dịch vụ hoặc tính năng cụ thể của Firebase, hãy sử dụng phương thức triển khai một phần.

Xung đột triển khai các quy tắc bảo mật

Đối với Cơ sở dữ liệu theo thời gian thực của Firebase, Cloud Storage cho Firebase và Cloud Firestore, bạn có thể xác định các quy tắc bảo mật trong thư mục dự án cục bộ hoặc trong bảng điều khiển của Firebase.

Một cách khác để tránh xung đột triển khai là sử dụng phương thức triển khai một phần và chỉ xác định các quy tắc trong bảng điều khiển của Firebase.

Hạn mức triển khai

Mặc dù không chắc chắn, bạn có thể vượt quá hạn mức giới hạn tốc độ hoặc khối lượng hoạt động triển khai Firebase của mình. Ví dụ: khi triển khai một số lượng rất lớn các hàm, bạn có thể nhận được thông báo lỗi HTTP 429 Quota. Để giải quyết những vấn đề như vậy, hãy thử sử dụng phương thức triển khai một phần.

Khôi phục quá trình triển khai

Bạn có thể khôi phục hoạt động triển khai Lưu trữ Firebase trên trang Lưu trữ Firebase của dự án bằng cách chọn thao tác Khôi phục cho bản phát hành mong muốn.

Hiện bạn không thể khôi phục bản phát hành các quy tắc bảo mật cho Cơ sở dữ liệu theo thời gian thực của Firebase, Cloud Storage cho Firebase hoặc Cloud Firestore.

Triển khai các dịch vụ Firebase cụ thể

Nếu chỉ muốn triển khai các dịch vụ hoặc tính năng cụ thể của Firebase, bạn có thể sử dụng danh sách được phân tách bằng dấu phẩy trong cờ trên lệnh firebase deploy. Ví dụ: lệnh sau đây triển khai nội dung Lưu trữ Firebase và các quy tắc bảo mật của Cloud Storage.

firebase deploy --only hosting,storage

Bảng sau đây liệt kê các dịch vụ và tính năng có thể triển khai một phần. Tên trong các cờ tương ứng với các khoá trong tệp cấu hình firebase.json.

Cú pháp gắn cờ Đã triển khai dịch vụ hoặc tính năng
--only hosting Nội dung Lưu trữ Firebase
--only database Quy tắc Cơ sở dữ liệu theo thời gian thực Firebase
--only storage Cloud Storage cho các quy tắc Firebase
--only firestore Các quy tắc chỉ mục của Cloud Firestore cho mọi cơ sở dữ liệu đã định cấu hình
--only functions Chức năng đám mây cho Firebase (có phiên bản cụ thể hơn của cờ này)

Triển khai các hàm cụ thể

Khi triển khai hàm, bạn có thể nhắm đến các hàm cụ thể. Ví dụ:

firebase deploy --only functions:function1
firebase deploy --only functions:function1,functions:function2

Một cách khác là nhóm các hàm vào các nhóm xuất trong tệp /functions/index.js. Việc nhóm các hàm cho phép bạn triển khai nhiều hàm bằng một lệnh duy nhất.

Ví dụ: bạn có thể viết những hàm sau để xác định groupAgroupB:

var functions = require('firebase-functions');

exports.groupA = {
  function1: functions.https.onRequest(...),
  function2: functions.database.ref('\path').onWrite(...)
}
exports.groupB = require('./groupB');

Trong ví dụ này, một tệp functions/groupB.js riêng chứa các hàm bổ sung xác định cụ thể các hàm đó trong groupB. Ví dụ:

var functions = require('firebase-functions');

exports.function3 = functions.storage.object().onChange(...);
exports.function4 = functions.analytics.event('in_app_purchase').onLog(...);

Trong ví dụ này, bạn có thể triển khai tất cả hàm groupA bằng cách chạy lệnh sau từ thư mục dự án:

firebase deploy --only functions:groupA

Hoặc bạn có thể nhắm đến một hàm cụ thể trong một nhóm bằng cách chạy lệnh sau:

firebase deploy --only functions:groupA.function1,groupB.function4

Xoá hàm

Firebase CLI hỗ trợ các lệnh và tuỳ chọn sau để xoá các hàm đã triển khai trước đó:

  • Xoá mọi hàm khớp với tên đã chỉ định ở mọi vùng:

    firebase functions:delete FUNCTION-1_NAME

  • Xoá một hàm đã chỉ định chạy trong khu vực không phải là mặc định:

    firebase functions:delete FUNCTION-1_NAME --region REGION_NAME

  • Xoá nhiều hàm:

    firebase functions:delete FUNCTION-1_NAME FUNCTION-2_NAME

  • Xoá một nhóm hàm đã chỉ định:

    firebase functions:delete GROUP_NAME

  • Bỏ qua lời nhắc xác nhận:

    firebase functions:delete FUNCTION-1_NAME --force

Thiết lập tác vụ triển khai trước và sau khi triển khai tập lệnh

Bạn có thể kết nối các tập lệnh shell với lệnh firebase deploy để thực hiện các tác vụ triển khai trước hoặc sau triển khai. Ví dụ: tập lệnh triển khai trước có thể chuyển mã TypeScript thành JavaScript và hook sau triển khai có thể thông báo cho quản trị viên về việc triển khai nội dung trang web mới cho dịch vụ Lưu trữ Firebase.

Để thiết lập hook trước hoặc sau triển khai, hãy thêm tập lệnh bash vào tệp cấu hình firebase.json. Bạn có thể xác định các tập lệnh ngắn gọn ngay trong tệp firebase.json hoặc có thể tham chiếu các tệp khác trong thư mục dự án của mình.

Ví dụ: tập lệnh sau là biểu thức firebase.json cho tác vụ sau triển khai. Tác vụ này sẽ gửi thông báo Slack sau khi triển khai thành công đến dịch vụ Lưu trữ Firebase.

"hosting": {
  // ...

  "postdeploy": "./messageSlack.sh 'Just deployed to Firebase Hosting'",
  "public": "public"
}

Tệp tập lệnh messageSlack.sh nằm trong thư mục dự án và có dạng như sau:

curl -X POST -H 'Content-type: application/json' --data '{"text":"$1"}'
     \https://SLACK_WEBHOOK_URL

Bạn có thể thiết lập hook predeploypostdeploy cho bất kỳ thành phần nào mà bạn có thể triển khai. Xin lưu ý rằng việc chạy firebase deploy sẽ kích hoạt tất cả các tác vụ triển khai trước và sau khi triển khai được xác định trong tệp firebase.json của bạn. Để chỉ chạy những tác vụ liên kết với một dịch vụ Firebase cụ thể, hãy sử dụng các lệnh triển khai một phần.

Cả hai hook predeploypostdeploy đều in đầu ra chuẩn và luồng lỗi của tập lệnh đến thiết bị đầu cuối. Đối với các trường hợp không thành công, hãy lưu ý những điều sau:

  • Nếu hook triển khai trước không hoàn tất như dự kiến, quá trình triển khai sẽ bị huỷ.
  • Nếu quá trình triển khai không thành công vì bất kỳ lý do gì, hook sau triển khai sẽ không được kích hoạt.

Biến môi trường

Trong các tập lệnh chạy trong hook trước triển khai và sau triển khai, có các biến môi trường sau:

  • $GCLOUD_PROJECT: Mã dự án của dự án đang hoạt động
  • $PROJECT_DIR: Thư mục gốc chứa tệp firebase.json
  • $RESOURCE_DIR: (Chỉ dành cho tập lệnh hostingfunctions) Vị trí của thư mục chứa tài nguyên Lưu trữ hoặc Chức năng đám mây cần triển khai

Quản lý nhiều thực thể Cơ sở dữ liệu theo thời gian thực

Một dự án Firebase có thể có nhiều thực thể Cơ sở dữ liệu theo thời gian thực của Firebase. Theo mặc định, các lệnh CLI tương tác với thực thể cơ sở dữ liệu mặc định của bạn.

Tuy nhiên, bạn có thể tương tác với một thực thể cơ sở dữ liệu không phải là thực thể mặc định bằng cách sử dụng cờ --instance DATABASE_NAME. Các lệnh sau đây hỗ trợ cờ --instance:

  • firebase database:get
  • firebase database:profile
  • firebase database:push
  • firebase database:remove
  • firebase database:set
  • firebase database:update

Tham chiếu lệnh

Lệnh quản trị CLI

Lệnh Nội dung mô tả
trợ giúp Hiện thông tin trợ giúp về CLI hoặc các lệnh cụ thể.
init Liên kết và thiết lập một dự án Firebase mới trong thư mục hiện tại. Lệnh này sẽ tạo một tệp cấu hình firebase.json trong thư mục hiện tại.
login Xác thực CLI với tài khoản Firebase của bạn. Cần có quyền truy cập vào một trình duyệt web.
Để đăng nhập vào CLI trong các môi trường từ xa không cho phép truy cập vào localhost, hãy sử dụng cờ --no-localhost.
login:ci Tạo mã thông báo xác thực để sử dụng trong các môi trường không tương tác.
đăng xuất Đăng xuất CLI khỏi tài khoản Firebase của bạn.
mở Mở trình duyệt cho các tài nguyên dự án có liên quan.
projects:list (dự án:danh sách) Liệt kê tất cả dự án Firebase mà bạn có quyền truy cập.
sử dụng Đặt dự án Firebase đang hoạt động cho CLI.
Quản lý các bí danh của dự án.

Các lệnh quản lý dự án

Lệnh Nội dung mô tả
Quản lý dự án Firebase
projects:addfirebase Thêm các tài nguyên Firebase vào một dự án hiện có trên Google Cloud.
projects:create Tạo một dự án mới trên Google Cloud, sau đó thêm tài nguyên Firebase vào dự án mới đó.
projects:list (dự án:danh sách) Liệt kê tất cả dự án Firebase mà bạn có quyền truy cập.
Quản lý ứng dụng Firebase (iOS, Android, Web)
ứng dụng:tạo Tạo một ứng dụng Firebase mới trong dự án đang hoạt động.
apps:list Liệt kê các Ứng dụng Firebase đã đăng ký trong dự án đang hoạt động.
apps:sdkconfig In cấu hình dịch vụ của Google của ứng dụng Firebase.
setup:web Không dùng nữa. Thay vào đó, hãy sử dụng apps:sdkconfig và chỉ định web làm đối số nền tảng.
In cấu hình các dịch vụ của Google của một ứng dụng web Firebase.
Quản lý hàm băm chứng chỉ SHA (chỉ Android)
apps:android:sha:create \
FIREBASE_APP_ID SHA_HASH
Thêm hàm băm chứng chỉ SHA đã chỉ định vào Ứng dụng Android Firebase đã chỉ định.
apps:android:sha:delete \
FIREBASE_APP_ID SHA_HASH
Xoá hàm băm chứng chỉ SHA đã chỉ định khỏi Ứng dụng Android Firebase đã chỉ định.
apps:android:sha:list \
FIREBASE_APP_ID
Liệt kê hàm băm chứng chỉ SHA cho Ứng dụng Android Firebase đã chỉ định.

Triển khai và phát triển cục bộ

Các lệnh này cho phép bạn triển khai và tương tác với trang web Lưu trữ Firebase.

Lệnh Nội dung mô tả
deploy Triển khai mã và tài sản từ thư mục dự án sang dự án đang hoạt động. Đối với tính năng Lưu trữ Firebase, bạn phải có tệp cấu hình firebase.json.
phân phát Khởi động một máy chủ web cục bộ với cấu hình Lưu trữ Firebase. Đối với tính năng Lưu trữ Firebase, bạn phải có tệp cấu hình firebase.json.

Lệnh Phân phối ứng dụng

Lệnh Nội dung mô tả
appphân phối:phân phối \
--ứng dụng FIREBASE_APP_ID
Cung cấp bản dựng cho người kiểm thử.
appdistribution:testers:add Thêm người kiểm thử vào dự án.
appdistribution:testers:remove Xoá người kiểm thử khỏi dự án.

Lệnh xác thực (quản lý người dùng)

Lệnh Nội dung mô tả
auth:export: (xuất) Xuất tài khoản người dùng của dự án đang hoạt động sang tệp JSON hoặc CSV. Để biết thêm thông tin chi tiết, hãy tham khảo trang auth:import và auth:export.
auth:import Nhập tài khoản người dùng từ tệp JSON hoặc CSV vào dự án đang hoạt động. Để biết thêm thông tin chi tiết, hãy tham khảo trang auth:import và auth:export.

Các lệnh trong Cloud Firestore

Lệnh Nội dung mô tả
firestore:locations

Liệt kê các vị trí hiện có cho cơ sở dữ liệu Cloud Firestore của bạn.

firestore:databases:create DATABASE_ID

Tạo một thực thể cơ sở dữ liệu ở chế độ gốc trong dự án Firebase.

Lệnh này sẽ nhận các cờ sau:

  • --location <region name> để chỉ định vị trí triển khai cho cơ sở dữ liệu. Xin lưu ý rằng bạn có thể chạy firebase Firestore:locations để liệt kê các vị trí có sẵn. Bắt buộc.
  • --delete-bảo vệ <deleteProtectionState> để cho phép hoặc ngăn việc xóa cơ sở dữ liệu đã chỉ định. Các giá trị hợp lệ là ENABLED hoặc DISABLED. Giá trị mặc định là DISABLED.
  • --point-in-time-recovery <PITRState> để đặt xem tính năng khôi phục tại một thời điểm có được bật hay không. Các giá trị hợp lệ là ENABLED hoặc DISABLED. Giá trị mặc định là DISABLED. Không bắt buộc.
firestore:databases:list

Liệt kê các cơ sở dữ liệu trong dự án Firebase của bạn.

firestore:databases:get DATABASE_ID

Lấy cấu hình cơ sở dữ liệu cho một cơ sở dữ liệu được chỉ định trong dự án Firebase của bạn.

firestore:databases:update DATABASE_ID

Cập nhật cấu hình cơ sở dữ liệu của một cơ sở dữ liệu đã chỉ định trong dự án Firebase của bạn.

Bắt buộc phải có ít nhất một cờ. Lệnh này sẽ nhận các cờ sau:

  • --delete-bảo vệ <deleteProtectionState> để cho phép hoặc ngăn việc xóa cơ sở dữ liệu đã chỉ định. Các giá trị hợp lệ là ENABLED hoặc DISABLED. Giá trị mặc định là DISABLED.
  • --point-in-time-recovery <PITRState> để đặt xem tính năng khôi phục tại một thời điểm có được bật hay không. Các giá trị hợp lệ là ENABLED hoặc DISABLED. Giá trị mặc định là DISABLED. Không bắt buộc.
firestore:databases:delete DATABASE_ID

Xoá cơ sở dữ liệu trong dự án Firebase.

firestore:indexes

Liệt kê các chỉ mục cho một cơ sở dữ liệu trong dự án Firebase của bạn.

Lệnh này sẽ lấy cờ sau:

  • --database DATABASE_ID để chỉ định tên của cơ sở dữ liệu cần liệt kê chỉ mục. Nếu không được cung cấp, các chỉ mục sẽ được liệt kê cho cơ sở dữ liệu mặc định.
firestore:delete

Xoá tài liệu trong cơ sở dữ liệu của dự án đang hoạt động. Khi sử dụng CLI, bạn có thể xoá tất cả tài liệu trong một tập hợp theo quy tắc đệ quy.

Xin lưu ý rằng việc xoá dữ liệu Cloud Firestore bằng CLI sẽ phát sinh chi phí đọc và xoá. Để biết thêm thông tin, hãy xem bài viết Tìm hiểu về cách thanh toán Cloud Firestore.

Lệnh này sẽ lấy cờ sau:

  • --database DATABASE_ID để chỉ định tên của cơ sở dữ liệu mà tài liệu bị xoá. Nếu không được chỉ định, các tài liệu sẽ bị xoá khỏi cơ sở dữ liệu mặc định. Không bắt buộc.

Hàm Cloud cho các lệnh Firebase

Lệnh Nội dung mô tả
functions:config:clone Sao chép môi trường của một dự án khác vào dự án Firebase đang hoạt động.
functions:config:get Truy xuất các giá trị cấu hình hiện có của Cloud Functions thuộc dự án đang hoạt động.
functions:config:set Lưu trữ các giá trị cấu hình thời gian chạy của các Chức năng đám mây của dự án đang hoạt động.
functions:config:unset Xoá các giá trị khỏi cấu hình thời gian chạy của dự án đang hoạt động.
functions:log Đọc nhật ký từ các Chức năng đám mây đã triển khai.

Để biết thêm thông tin, hãy tham khảo tài liệu về cấu hình môi trường.

Các lệnh trong Crashlytics

Lệnh Nội dung mô tả
Crashlytics:mappingfile:generateid \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML
Tạo một mã tệp ánh xạ duy nhất trong tệp tài nguyên Android (XML) được chỉ định.
Crashlytics:mappingfile:upload \
--app=FIREBASE_APP_ID \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML \
PATH/TO/MAPPING_FILE.TXT
Tải tệp ánh xạ tương thích với Proguard (TXT) lên cho ứng dụng này và liên kết tệp đó với mã tệp ánh xạ được khai báo trong tệp tài nguyên Android (XML) được chỉ định.
Crashlytics:symbols:upload \
--app=FIREBASE_APP_ID \
PATH/TO/SYMBOLS
Tạo một tệp biểu tượng tương thích với Crashlytics khi thư viện gốc gặp sự cố trên Android rồi tải tệp đó lên máy chủ Firebase.

Lệnh cho tiện ích

Lệnh Nội dung mô tả
ext Hiển thị thông tin về cách sử dụng lệnh Tiện ích Firebase.
Liệt kê các thực thể tiện ích được cài đặt trong dự án đang hoạt động.
ext:định cấu hình \
EXTENSION_INSTANCE_ID
Định cấu hình lại các giá trị tham số của một thực thể tiện ích trong tệp kê khai tiện ích.
ext:info \
PUBLISHER_ID/EXTENSION_ID
In thông tin chi tiết về một tiện ích.
ext:cài đặt \
PUBLISHER_ID/EXTENSION_ID
Thêm thực thể mới của một tiện ích vào tệp kê khai tiện ích.
ext:list Liệt kê tất cả các bản sao tiện ích được cài đặt trong một dự án Firebase.
In mã thực thể cho từng tiện ích.
phần mở rộng:gỡ cài đặt \
EXTENSION_INSTANCE_ID
Xoá một thực thể tiện ích khỏi tệp kê khai tiện ích.
ext:update \
EXTENSION_INSTANCE_ID
Cập nhật một thực thể tiện ích lên phiên bản mới nhất trong tệp kê khai tiện ích.
ext:export Xuất mọi thực thể tiện ích đã cài đặt từ dự án của bạn sang tệp kê khai tiện ích.

Lệnh của nhà xuất bản tiện ích

Lệnh Nội dung mô tả
ext:dev:init Khởi động cơ sở mã skeleton cho một tiện ích mới trong thư mục hiện tại.
ext:dev:list \
PUBLISHER_ID
In danh sách tất cả các tiện ích do nhà xuất bản tải lên.
ext:dev:register Đăng ký một dự án Firebase dưới dạng một dự án nhà xuất bản tiện ích.
ext:dev:deprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Không dùng nữa các phiên bản tiện ích khớp với thuộc tính phiên bản.
Thuộc tính phiên bản có thể là một phiên bản duy nhất (chẳng hạn như 1.0.0) hoặc một loạt phiên bản (chẳng hạn như >1.0.0).
Nếu bạn không cung cấp thuộc tính phiên bản, thì mọi phiên bản của tiện ích đó sẽ không được dùng nữa.
ext:dev:undeprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Phiên bản tiện ích Undeprecates khớp với thuộc tính phiên bản.
Thuộc tính phiên bản có thể là một phiên bản (chẳng hạn như 1.0.0) hoặc một loạt phiên bản (chẳng hạn như >1.0.0).
Nếu bạn không cung cấp thuộc tính phiên bản, thì mọi phiên bản của tiện ích đó sẽ không bị ngừng sử dụng.
ext:dev:upload \
PUBLISHER_ID/EXTENSION_ID
Tải phiên bản tiện ích mới lên.
ext:dev:usage \
PUBLISHER_ID
Hiển thị số lượt cài đặt và chỉ số sử dụng cho các tiện ích do nhà xuất bản tải lên.

Lệnh lưu trữ

Lệnh Nội dung mô tả
hosting:disable

Ngừng phân phát lưu lượng truy cập Lưu trữ Firebase cho dự án Firebase đang hoạt động.

URL lưu trữ của dự án sẽ hiển thị thông báo "Không tìm thấy trang web" sau khi chạy lệnh này.

Quản lý trang web lưu trữ
trang lưu trữ firebase:sites:create \
SITE_ID

Tạo một trang web Lưu trữ mới trong dự án Firebase đang hoạt động bằng cách sử dụng SITE_ID được chỉ định

(Không bắt buộc) Chỉ định một Ứng dụng web Firebase hiện có để liên kết với trang web mới bằng cách truyền cờ sau: --app FIREBASE_APP_ID

trang lưu trữ firebase:sites:delete \
SITE_ID

Xoá trang web Lưu trữ đã chỉ định

CLI hiển thị lời nhắc xác nhận trước khi xoá trang web.

(Không bắt buộc) Bỏ qua lời nhắc xác nhận bằng cách truyền các cờ sau: -f hoặc --force

trang lưu trữ firebase:sites:get \
SITE_ID

Truy xuất thông tin về trang web Lưu trữ đã chỉ định

trang lưu trữ firebase:sites:list

Liệt kê tất cả trang web Lưu trữ của dự án Firebase đang hoạt động

Quản lý các kênh xem trước
lưu trữ firebase:channel:create \
CHANNEL_ID

Tạo một kênh xem trước mới trên trang web lưu trữ mặc định bằng CHANNEL_ID được chỉ định

Lệnh này không triển khai cho kênh.

lưu trữ firebase:channel:delete \
CHANNEL_ID

Xoá kênh xem trước đã chỉ định

Bạn không thể xoá kênh trực tiếp của một trang web.

lưu trữ firebase:channel:implementation \
CHANNEL_ID

Triển khai nội dung và cấu hình Lưu trữ của bạn cho kênh xem trước đã chỉ định

Nếu chưa có kênh xem trước, lệnh này sẽ tạo kênh trên trang web lưu trữ default trước khi triển khai cho kênh.

trang lưu trữ firebase:channel:list Liệt kê tất cả các kênh (bao gồm cả kênh "trực tiếp") trên trang web lưu trữ mặc định
lưu trữ firebase:channel:open \
CHANNEL_ID
Mở trình duyệt dẫn đến URL của kênh đã chỉ định hoặc trả về URL nếu không thể mở trong trình duyệt
Sao chép phiên bản
lưu trữ firebase:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Sao chép phiên bản được triển khai gần đây nhất trên kênh "nguồn" được chỉ định vào kênh "mục tiêu" đã chỉ định

Lệnh này cũng triển khai kênh "mục tiêu" đã chỉ định. Nếu kênh "mục tiêu" chưa tồn tại, lệnh này sẽ tạo một kênh xem trước mới trên trang web lưu trữ "mục tiêu" trước khi triển khai cho kênh.

lưu trữ firebase:clone \
SOURCE_SITE_ID:@VERSION_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Sao chép phiên bản đã chỉ định vào kênh "target" đã chỉ định

Lệnh này cũng triển khai kênh "mục tiêu" đã chỉ định. Nếu kênh "mục tiêu" chưa tồn tại, lệnh này sẽ tạo một kênh xem trước mới trên trang web lưu trữ "mục tiêu" trước khi triển khai cho kênh.

Bạn có thể tìm thấy VERSION_ID trong Trang tổng quan lưu trữ trên bảng điều khiển của Firebase.

Các lệnh trong Cơ sở dữ liệu theo thời gian thực

Xin lưu ý rằng bạn có thể tạo thực thể ban đầu, mặc định của Cơ sở dữ liệu theo thời gian thực trong bảng điều khiển của Firebase hoặc bằng cách sử dụng quy trình công việc firebase init chung hoặc quy trình firebase init database cụ thể.

Sau khi tạo các thực thể, bạn có thể quản lý các thực thể đó như đã thảo luận trong bài viết Quản lý nhiều thực thể Cơ sở dữ liệu theo thời gian thực.

Lệnh Nội dung mô tả
database:get Tìm nạp dữ liệu từ cơ sở dữ liệu của dự án đang hoạt động và hiển thị dữ liệu đó dưới dạng JSON. Hỗ trợ truy vấn dữ liệu đã lập chỉ mục.
database:instances:create Tạo một thực thể cơ sở dữ liệu có tên thực thể đã chỉ định. Chấp nhận tuỳ chọn --location để tạo cơ sở dữ liệu trong một khu vực đã chỉ định. Để biết tên khu vực có thể sử dụng với tuỳ chọn này, hãy xem phần chọn vị trí cho dự án của bạn. Nếu không có thực thể cơ sở dữ liệu nào cho dự án hiện tại, bạn sẽ được nhắc chạy quy trình firebase init để tạo một thực thể.
database:instances:list Liệt kê tất cả thực thể cơ sở dữ liệu của dự án này. Chấp nhận tuỳ chọn --location để liệt kê cơ sở dữ liệu trong một khu vực cụ thể. Để biết tên khu vực có thể sử dụng với tuỳ chọn này, hãy xem phần chọn vị trí cho dự án của bạn.
database:profile Xây dựng hồ sơ thao tác trên cơ sở dữ liệu của dự án đang hoạt động. Để biết thêm thông tin, hãy tham khảo Các loại thao tác của Cơ sở dữ liệu theo thời gian thực.
database:push Đẩy dữ liệu mới vào một danh sách tại một vị trí đã chỉ định trong cơ sở dữ liệu của dự án đang hoạt động. Lấy dữ liệu đầu vào từ một tệp, STDIN hoặc một đối số dòng lệnh.
cơ sở dữ liệu:xoá Xoá tất cả dữ liệu tại một vị trí đã chỉ định trong cơ sở dữ liệu của dự án đang hoạt động.
database:set Thay thế tất cả dữ liệu tại một vị trí cụ thể trong cơ sở dữ liệu của dự án đang hoạt động. Lấy dữ liệu đầu vào từ một tệp, STDIN hoặc một đối số dòng lệnh.
database:update Thực hiện cập nhật một phần tại một vị trí đã chỉ định trong cơ sở dữ liệu của dự án đang hoạt động. Lấy dữ liệu đầu vào từ một tệp, STDIN hoặc một đối số dòng lệnh.

Các lệnh Cấu hình từ xa

Lệnh Nội dung mô tả
remoteconfig:versions:list \
--giới hạn NUMBER_OF_VERSIONS
Liệt kê 10 phiên bản mẫu gần đây nhất. Hãy chỉ định 0 để trả về mọi phiên bản hiện có hoặc truyền tuỳ chọn --limit (không bắt buộc) để giới hạn số lượng phiên bản được trả về.
remoteconfig:get \
--v, version_number VERSION_NUMBER
--o, đầu ra FILENAME
Lấy mẫu theo phiên bản (mặc định là phiên bản mới nhất) và xuất các nhóm thông số, tham số, tên điều kiện và phiên bản vào một bảng. Nếu muốn, bạn có thể ghi đầu ra vào một tệp được chỉ định bằng -o, FILENAME.
remoteconfig:rollback \
--v, version_number VERSION_NUMBER
--force
Khôi phục mẫu Cấu hình từ xa về một số phiên bản trước đó được chỉ định hoặc đặt mặc định về phiên bản trước đó (phiên bản hiện tại -1). Trừ phi --force được truyền, hãy nhắc Y/N trước khi tiếp tục khôi phục.