Firebase CLI 參考資料

Firebase CLI (GitHub) 提供多種工具,可管理、查看及部署至 Firebase 專案。

使用 Firebase CLI 前,請先設定 Firebase 專案

設定或更新 CLI

安裝 Firebase CLI

您可以根據作業系統、經驗程度和/或用途,選擇合適的方法安裝 Firebase CLI。無論您如何安裝 CLI,都能存取相同的功能和 firebase 指令。

Windows macOS Linux

Windows

您可以使用下列其中一個選項,為 Windows 安裝 Firebase CLI:

選項 說明 推薦對象...
獨立二進位檔 下載 CLI 的獨立二進位檔。接著,您就能存取可執行檔,開啟可執行 firebase 指令的殼層。 新開發人員

不使用或不熟悉 Node.js 的開發人員
npm 使用 npm (Node Package Manager) 安裝 CLI,並啟用全域可用的 firebase 指令。 使用 Node.js 的開發人員

獨立二進位檔

如要下載及執行 Firebase CLI 的二進位檔,請按照下列步驟操作:

  1. 下載適用於 Windows 的 Firebase CLI 二進位檔

  2. 存取二進位檔,開啟可執行 firebase 指令的殼層。

  3. 繼續登入並測試 CLI

npm

如要使用 npm (Node Package Manager) 安裝 Firebase CLI,請按照下列步驟操作:

  1. 使用 nvm-windows (Node Version Manager) 安裝 Node.js。安裝 Node.js 時,系統會自動安裝 npm 指令工具。

  2. 透過 npm 執行下列指令,安裝 Firebase CLI:

    npm install -g firebase-tools

    這項指令會啟用全域可用的 firebase 指令。

  3. 繼續登入並測試 CLI

macOS 或 Linux

如要在 macOS 或 Linux 上安裝 Firebase CLI,請使用下列其中一個選項:

選項 說明 推薦對象...
自動安裝指令碼 執行單一指令,自動偵測作業系統、下載最新版 CLI,然後啟用全域可用的 firebase 指令。 新開發人員

未使用或不熟悉 Node.js 的開發人員

CI/CD 環境中自動部署
獨立二進位檔 下載 CLI 的獨立二進位檔。接著,您就可以設定及執行二進位檔,配合自己的工作流程。 使用 CLI 完全自訂工作流程
npm 使用 npm (Node Package Manager) 安裝 CLI,並啟用全域可用的 firebase 指令。 使用 Node.js 的開發人員

自動安裝指令碼

如要使用自動安裝指令碼安裝 Firebase CLI,請按照下列步驟操作:

  1. 執行下列 cURL 指令:

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

    這個指令碼會自動偵測作業系統、下載最新 Firebase CLI 版本,然後啟用全球通用的 firebase 指令。

  2. 繼續登入並測試 CLI

如需自動安裝指令碼的更多範例和詳細資料,請參閱 firebase.tools 的指令碼原始碼。

獨立二進位檔

如要下載並執行適用於您作業系統的 Firebase CLI 二進位檔,請按照下列步驟操作:

  1. 下載適用於您作業系統的 Firebase CLI 二進位檔: macOS | Linux

  2. (選用) 設定全域可用的 firebase 指令。

    1. 執行 chmod +x ./firebase_tools,將二進位檔設為可執行。
    2. 將二進位檔的路徑新增至 PATH。
  3. 繼續登入並測試 CLI

npm

如要使用 npm (Node Package Manager) 安裝 Firebase CLI,請按照下列步驟操作:

  1. 使用 nvm (Node Version Manager) 安裝 Node.js
    安裝 Node.js 時,系統會自動安裝 npm 指令工具。

  2. 透過 npm 執行下列指令,安裝 Firebase CLI:

    npm install -g firebase-tools

    這項指令會啟用全域可用的 firebase 指令。

  3. 繼續登入並測試 CLI

登入並測試 Firebase CLI

安裝 CLI 後,您必須進行驗證。接著,您可以列出 Firebase 專案,確認驗證是否成功。

  1. 執行下列指令,使用 Google 帳戶登入 Firebase:

    firebase login

    這項指令會將本機連線至 Firebase,並授予您 Firebase 專案的存取權。

  2. 請列出 Firebase 專案,測試 CLI 是否已正確安裝並存取您的帳戶。執行下列指令:

    firebase projects:list

    顯示的清單應與 Firebase 控制台中列出的 Firebase 專案相同。

更新至最新版 CLI

一般來說,建議使用最新版的 Firebase CLI。

更新 CLI 版本的方式取決於作業系統,以及 CLI 的安裝方式。

Windows

  • 獨立二進位檔下載新版本,然後在系統上取代舊版
  • npm:執行 npm install -g firebase-tools

macOS

  • 自動安裝指令碼:執行 curl -sL https://firebase.tools | upgrade=true bash

  • 獨立二進位檔下載新版本,然後在系統中取代舊版

  • npm:執行 npm install -g firebase-tools

Linux

  • 自動安裝指令碼:執行 curl -sL https://firebase.tools | upgrade=true bash

  • 獨立二進位檔下載新版本,然後在系統中取代舊版

  • npm:執行 npm install -g firebase-tools

搭配 CI 系統使用 CLI

在 CI 系統中使用 CLI 時,建議您使用應用程式預設憑證進行驗證。

(建議) 使用應用程式預設憑證

如果已設定應用程式預設憑證,Firebase CLI 會偵測並使用這些憑證。如要在 CI 和其他無周邊環境中驗證 CLI,最簡單的方式是設定應用程式預設憑證

(舊版) 使用 FIREBASE_TOKEN

或者,您也可以使用 FIREBASE_TOKEN 進行驗證。這類做法的安全性不如應用程式預設憑證,因此我們不再建議使用。

  1. 在有瀏覽器的電腦上安裝 Firebase CLI

  2. 執行下列指令,啟動登入程序:

    firebase login:ci
  3. 前往提供的網址,然後使用 Google 帳戶登入。

  4. 列印新的更新權杖。 目前的 CLI 工作階段不會受到影響。

  5. 在 CI 系統中,以安全但可存取的方式儲存輸出權杖。

  6. 執行 firebase 指令時,請使用這個權杖。你可以選擇下列其中一種方式:

    • 選項 1:將權杖儲存為環境變數 FIREBASE_TOKEN。系統會自動使用權杖。

    • 選項 2:在 CI 系統中,使用 --token TOKEN 旗標執行所有 firebase 指令。
      權杖載入的優先順序如下:旗標、環境變數、所需 Firebase 專案。

初始化 Firebase 專案

使用 CLI 執行許多常見工作 (例如部署至 Firebase 專案) 時,都需要專案目錄。您可以使用 firebase init 指令建立專案目錄。專案目錄通常與來源控管根目錄相同,執行 firebase init 後,該目錄會包含 firebase.json 設定檔。

如要初始化新的 Firebase 專案,請在應用程式的目錄中執行下列指令:

firebase init

firebase init 指令會逐步引導您設定專案目錄和部分 Firebase 產品。在專案初始化期間,Firebase CLI 會要求您完成下列工作:

  • 選取預設 Firebase 專案。

    這個步驟會將目前的專案目錄與 Firebase 專案建立關聯,以便針對適當的 Firebase 專案執行專案專屬指令 (例如 firebase deploy)。

    您也可以將多個 Firebase 專案 (例如測試專案和正式專案) 與同一個專案目錄建立關聯

  • 選取要在 Firebase 專案中設定的 Firebase 產品。

    這個步驟會提示您為所選產品的特定檔案設定。如要進一步瞭解這些設定,請參閱特定產品的說明文件 (例如 Hosting)。請注意,您隨時可以稍後執行 firebase init,設定更多 Firebase 產品。

初始化完成後,Firebase 會自動在您本機應用程式目錄的根層級建立下列兩個檔案:

firebase.json 檔案

firebase init 指令會在專案目錄的根目錄中建立 firebase.json 設定檔。

如要使用 Firebase CLI 部署資產,就必須有 firebase.json 檔案,因為該檔案會指定要將專案目錄中的哪些檔案和設定部署至 Firebase 專案。由於部分設定可在專案目錄或 Firebase 控制台中定義,請務必解決任何潛在的部署衝突

您可以在 firebase.json 檔案中直接設定大部分的 Firebase Hosting 選項。不過,如果是可透過 Firebase CLI 部署的其他 Firebase 服務firebase init 指令會建立特定檔案,供您定義這些服務的設定,例如 Cloud Functionsindex.js 檔案。您也可以在 firebase.json 檔案中設定部署前或部署後掛鉤

如果您在初始化期間選取 Firebase HostingCloud FirestoreCloud Functions for Firebase (並選取 TypeScript 來源和 Lint 選項),以下是具有預設設定的 firebase.json 檔案範例。

{
  "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"
    ]
  }
}

雖然系統預設會使用 firebase.json,但您可以傳遞 --config PATH 旗標,指定替代設定檔。

多個Cloud Firestore資料庫的設定

執行 firebase init 時,您的 firebase.json 檔案會包含與專案預設資料庫對應的單一 firestore 金鑰,如上所示。

如果專案包含多個 Cloud Firestore 資料庫,請編輯 firebase.json 檔案,將不同的 Cloud Firestore Security Rules 和資料庫索引來源檔案與每個資料庫建立關聯。使用 JSON 陣列修改檔案,每個資料庫各有一個項目。

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

部署時要忽略的 Cloud Functions 個檔案

在部署函式時,CLI 會自動指定 functions 目錄中要忽略的檔案清單。這樣一來,您就不會將多餘的檔案部署至後端,避免部署的資料大小增加。

以 JSON 格式顯示的預設忽略檔案清單如下:

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

如果您在 firebase.json 中為 ignore 新增自訂值,請務必保留 (或新增,如果遺漏) 上方顯示的檔案清單。

管理專案別名

您可以將多個 Firebase 專案與同一個專案目錄建立關聯。舉例來說,您可能想為測試環境使用一個 Firebase 專案,為正式環境使用另一個專案。使用不同的專案環境,即可在部署至正式環境前驗證變更。firebase use 指令可讓您在別名之間切換,以及建立新的別名。

新增專案別名

專案初始化期間選取 Firebase 專案時,系統會自動為該專案指派 default 別名。不過,如要允許專案專屬指令針對其他 Firebase 專案執行,但仍使用相同的專案目錄,請從專案目錄中執行下列指令:

firebase use --add

這項指令會提示您選取其他 Firebase 專案,並將該專案指派為別名。別名指派作業會寫入專案目錄中的 .firebaserc 檔案。

使用專案別名

如要使用指派的 Firebase 專案別名,請從專案目錄中執行下列任一指令。

指令 說明
firebase use 查看專案目錄目前定義的別名清單
firebase use \
PROJECT_ID|ALIAS
將所有指令導向指定 Firebase 專案執行。
CLI 會將這個專案做為目前的「有效專案」。
firebase use --clear 清除有效專案。

執行 firebase use PROJECT_ID|ALIAS,設定新的有效專案,然後再執行其他 CLI 指令。

firebase use \
--unalias PROJECT_ALIAS
從專案目錄中移除別名。

如要覆寫目前使用的專案,可以在任何 CLI 指令中傳遞 --project 標記。舉例來說,您可以設定 CLI,針對已指派 staging 別名的 Firebase 專案執行。如果您想針對已指派 prod 別名的 Firebase 專案執行單一指令,可以執行 firebase deploy --project=prod 等指令。

原始碼控管和專案別名

一般來說,您應將 .firebaserc 檔案簽入來源控制項,讓團隊共用專案別名。不過,如果是開放原始碼專案或入門範本,一般來說不應簽入 .firebaserc 檔案。

如果您有僅供自己使用的開發專案,可以為每個指令傳遞 --project 標記,也可以執行 firebase use PROJECT_ID,但不為 Firebase 專案指派別名。

在本機提供及測試 Firebase 專案

您可以在部署至正式環境前,在本機代管的網址上查看及測試 Firebase 專案。如要測試特定功能,可以在 firebase serve 指令的旗標中,使用以半形逗號分隔的清單。

如要執行下列任一工作,請從本機專案目錄的根目錄執行下列指令:

firebase serve --only hosting

使用本機 HTTP 函式模擬專案

在專案目錄中執行下列任一指令,即可使用本機 HTTP 函式模擬專案。

  • 如要模擬 HTTP 函式和主機,以便在本機網址上進行測試,請使用下列任一指令:

    firebase serve
    firebase serve --only functions,hosting // uses a flag
  • 如要只模擬 HTTP 函式,請使用下列指令:

    firebase serve --only functions

使用其他本機裝置測試

根據預設,firebase serve只會回應 localhost 的要求。也就是說,您可以使用電腦的網路瀏覽器存取代管內容,但無法透過網路上的其他裝置存取。如要從其他本機裝置進行測試,請使用 --host 標記,如下所示:

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

部署至 Firebase 專案

Firebase CLI 可管理程式碼和資產在 Firebase 專案中的部署作業,包括:

  • Firebase Hosting 網站的新版本
  • 新的、更新的或現有的 Cloud Functions for Firebase
  • Firebase Data Connect 的新結構定義和連接器或更新項目
  • Firebase Realtime Database」的規則
  • Cloud Storage for Firebase」的規則
  • Cloud Firestore」的規則
  • Cloud Firestore」的索引

如要部署至 Firebase 專案,請在專案目錄中執行下列指令:

firebase deploy

您可以視需要為每個部署作業新增註解。這則留言會與其他部署資訊一起顯示在專案的Firebase Hosting頁面上。例如:

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

使用 firebase deploy 指令時,請注意下列事項:

  • 如要從專案目錄部署資源,專案目錄必須firebase.json 檔案。這個檔案是由 firebase init 指令自動建立。

  • 根據預設,firebase deploy 會為專案目錄中的所有可部署資源建立版本。如要部署特定 Firebase 服務或功能,請使用部分部署

安全性規則的部署衝突

如要使用 Firebase Realtime DatabaseCloud Storage for FirebaseCloud Firestore,您可以在本機專案目錄或 Firebase 控制台中定義安全性規則。

如要避免部署衝突,也可以使用部分部署,並只在 Firebase 控制台中定義規則。

部署配額

您可能會超過配額,導致 Firebase 部署作業的速率或數量受限 (雖然機率不高)。舉例來說,部署大量函式時,可能會收到 HTTP 429 Quota 錯誤訊息。如要解決這類問題,請嘗試使用部分部署

復原部署作業

如要從專案的Firebase HostingFirebase Hosting頁面復原部署作業,請選取所需版本的「復原」動作。

目前無法針對 Firebase Realtime DatabaseCloud Storage for FirebaseCloud Firestore 回溯安全性規則版本。

部署特定 Firebase 服務

如要只部署特定 Firebase 服務或功能,可以在 firebase deploy 指令的標記中,使用以半形逗號分隔的清單。舉例來說,下列指令會部署 Firebase Hosting 內容和 Cloud Storage 安全性規則。

firebase deploy --only hosting,storage

下表列出部分部署適用的服務和功能。旗標中的名稱會對應至 firebase.json 設定檔中的鍵。

旗標語法 部署的服務或功能
--only hosting Firebase Hosting內容
--only database Firebase Realtime Database 項規則
--only dataconnect Firebase Data Connect結構定義和連接器
--only storage Cloud Storage for Firebase 項規則
--only firestore 所有已設定資料庫的 Cloud Firestore 規則 索引
--only functions Cloud Functions for Firebase (more specific versions of this flag are possible)

部署特定函式

部署函式時,您可以指定特定函式。例如:

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

您也可以在 /functions/index.js 檔案中將函式分組為匯出群組。您可以使用分組函式,透過單一指令部署多個函式。

舉例來說,您可以編寫下列函式來定義 groupAgroupB

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

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

在本範例中,另一個 functions/groupB.js 檔案包含其他函式,專門用於定義 groupB 中的函式。例如:

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

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

在本範例中,您可以從專案目錄執行下列指令,部署所有 groupA 函式:

firebase deploy --only functions:groupA

或者,您也可以執行下列指令,指定群組中的特定函式:

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

刪除函式

Firebase CLI 支援下列指令和選項,可刪除先前部署的函式:

  • 刪除所有區域中符合指定名稱的所有函式:

    firebase functions:delete FUNCTION-1_NAME

  • 刪除在非預設區域中執行的指定函式:

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

  • 刪除多個函式:

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

  • 刪除指定函式群組:

    firebase functions:delete GROUP_NAME

  • 略過確認提示:

    firebase functions:delete FUNCTION-1_NAME --force

設定部署前和部署後指令碼工作

您可以將殼層指令碼連結至 firebase deploy 指令,執行部署前或部署後工作。舉例來說,前置部署指令碼可將 TypeScript 程式碼轉譯為 JavaScript,後置部署掛鉤則可通知管理員,新網站內容已部署至 Firebase Hosting

如要設定部署前或部署後掛鉤,請將 Bash 指令碼新增至 firebase.json 設定檔。您可以直接在 firebase.json 檔案中定義簡短指令碼,也可以參照專案目錄中的其他檔案。

舉例來說,下列指令碼是 firebase.json 運算式,適用於部署後工作,可在成功部署至 Firebase Hosting 時傳送 Slack 訊息。

"hosting": {
  // ...

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

messageSlack.sh 指令碼檔案位於專案目錄中,內容如下所示:

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

您可以為可部署的任何資產設定 predeploypostdeploy 勾點。請注意,執行 firebase deploy 會觸發 所有firebase.json 檔案中定義的預先部署和後期部署工作。如要只執行與特定 Firebase 服務相關聯的工作,請使用部分部署指令

predeploypostdeploy 勾點都會將指令碼的標準輸出和錯誤串流列印至終端機。如果發生失敗情況,請注意下列事項:

  • 如果前置部署掛鉤無法如期完成,系統會取消部署作業。
  • 如果部署作業因故失敗,系統不會觸發部署後掛鉤。

環境變數

在預先部署和後期部署掛鉤中執行的指令碼中,可以使用下列環境變數:

  • $GCLOUD_PROJECT:有效專案的專案 ID
  • $PROJECT_DIR:包含 firebase.json 檔案的根目錄
  • $RESOURCE_DIR(僅適用於 hostingfunctions 指令碼) 包含要部署的 HostingCloud Functions 資源的目錄位置

管理多個 Realtime Database 執行個體

一個 Firebase 專案可以有多個Firebase Realtime Database執行個體。根據預設,CLI 指令會與預設資料庫執行個體互動。

不過,您可以使用 --instance DATABASE_NAME 旗標與非預設資料庫執行個體互動。下列指令支援 --instance 旗標:

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

指令參考資料

CLI 管理指令

指令 說明
說明 顯示 CLI 或特定指令的說明資訊。
init 在目前目錄中建立及設定新的 Firebase 專案。 這個指令會在目前目錄中建立 firebase.json 設定檔。
login 使用 Google 帳戶驗證 CLI。需要存取網路瀏覽器。
如要在不允許存取 localhost 的遠端環境中登入 CLI,請使用 --no-localhost 旗標。
login:ci 產生驗證權杖,供非互動式環境使用。
登出 從 CLI 登出 Google 帳戶。
open 開啟瀏覽器,前往相關專案資源。
projects:list 列出您有權存取的所有 Firebase 專案。
使用 為 CLI 設定有效的 Firebase 專案。
管理專案別名

專案管理指令

指令 說明
管理 Firebase 專案
projects:addfirebase 將 Firebase 資源新增至現有的 Google Cloud 專案。
projects:create 建立新的 Google Cloud 專案,然後將 Firebase 資源新增至新專案。
projects:list 列出您有權存取的所有 Firebase 專案。
管理 Firebase 應用程式 (iOS、Android、網頁)
apps:create 在有效專案中建立新的 Firebase 應用程式。
apps:list 列出有效專案中已註冊的 Firebase 應用程式。
apps:sdkconfig 列印 Firebase 應用程式的 Google 服務設定。
setup:web 已淘汰。請改用 apps:sdkconfig,並將 web 指定為平台引數。
列印 Firebase 網路應用程式的 Google 服務設定。
管理 SHA 憑證雜湊 (僅限 Android)
apps:android:sha:create \
FIREBASE_APP_ID SHA_HASH
將指定的 SHA 憑證雜湊新增至指定的 Firebase Android 應用程式。
apps:android:sha:delete \
FIREBASE_APP_ID SHA_HASH
從指定的 Firebase Android 應用程式中刪除指定的 SHA 憑證雜湊。
apps:android:sha:list \
FIREBASE_APP_ID
列出指定 Firebase Android 應用程式的 SHA 憑證雜湊。

部署和本機開發

這些指令可讓您部署及與 Firebase Hosting 網站互動。

指令 說明
部署 將專案目錄中的程式碼和資產部署至有效專案。如果是 Firebase Hosting,則必須使用 firebase.json 設定檔。
serve 使用 Firebase Hosting 設定啟動本機網路伺服器。 如果是 Firebase Hosting,則必須使用 firebase.json 設定檔。

App Distribution 指令

指令 說明
appdistribution:distribute \
--app FIREBASE_APP_ID
讓測試人員可以存取建構版本。
appdistribution:testers:add 將測試人員新增至專案。
appdistribution:testers:remove 從專案中移除測試人員。

App Hosting 指令

指令 說明
apphosting:backends:create \
--project PROJECT_ID \
--location REGION --app APP_ID
建立與單一程式碼庫連結的受管理資源集合,這些資源構成 App Hosting 後端。您可以選擇指定現有的 Firebase 網頁應用程式 (透過 Firebase 應用程式 ID)。
apphosting:backends:get \
BACKEND_ID \
--project PROJECT_ID \
--location REGION
擷取後端的特定詳細資料,包括公開網址。
apphosting:backends:list \
--project PROJECT_ID
擷取與專案相關聯的所有有效後端清單。
firebase apphosting:backends:delete \
BACKEND_ID \
--project PROJECT_ID \
--location REGION
從專案中刪除後端。
firebase apphosting:config:export \
--project PROJECT_ID \
--secrets ENVIRONMENT_NAME
匯出密鑰,用於應用程式模擬。
預設為儲存在 apphosting.yaml 中的密鑰,或採用 --secrets 指定任何具有對應 apphosting.ENVIRONMENT_NAME.yaml 檔案的環境。
firebase apphosting:rollouts:create \
BACKEND_ID \
--git_branch BRANCH_NAME \
--git_commit COMMIT_ID
建立手動觸發的推出作業。
視需要指定分支的最新提交內容或特定提交內容。如果沒有提供任何選項,系統會提示從分行清單中選取。
apphosting:secrets:set KEY --project PROJECT_ID \
--location REGION \
--data-file DATA_FILE_PATH
將密鑰資料儲存在 Secret Manager 中。
(選用) 提供要從中讀取密鑰資料的檔案路徑。設為 _,從標準輸入讀取密鑰資料。
apphosting:secrets:grantaccess KEY BACKEND_ID \
--project PROJECT_ID \
--location REGION
授予後端服務帳戶所提供密鑰的存取權,以便在建構或執行階段透過 App Hosting 存取密鑰。
apphosting:secrets:describe KEY \
--project PROJECT_ID
取得密鑰及其版本的相關中繼資料。
firebase apphosting:secrets:access \
KEY[@version] \
--project PROJECT_ID
根據密鑰及其版本存取密鑰值。 預設為存取最新版本。

Authentication (使用者管理) 指令

指令 說明
auth:export 將有效專案的使用者帳戶匯出為 JSON 或 CSV 檔案。詳情請參閱 auth:import 和 auth:export 頁面
auth:import 將 JSON 或 CSV 檔案中的使用者帳戶匯入至有效專案。詳情請參閱auth:import 和 auth:export 頁面

Cloud Firestore 指令

指令 說明
firestore:locations

列出 Cloud Firestore 資料庫的可用位置。

firestore:databases:create DATABASE_ID

在 Firebase 專案中,以原生模式建立資料庫執行個體。

這項指令會採用下列標記:

  • --location <region name>,指定資料庫的部署位置。請注意,您可以執行 firebase firestore:locations 列出可用位置。必要
  • --delete-protection <deleteProtectionState> 允許或禁止刪除指定資料庫。有效值為 ENABLEDDISABLED。預設值為 DISABLED
  • --point-in-time-recovery <PITRState>,設定是否啟用時間點復原功能。有效值為 ENABLEDDISABLED。預設值為 DISABLED。選填。
firestore:databases:list

列出 Firebase 專案中的資料庫。

firestore:databases:get DATABASE_ID

取得 Firebase 專案中指定資料庫的資料庫設定。

firestore:databases:update DATABASE_ID

更新 Firebase 專案中指定資料庫的資料庫設定。

至少須提供一個旗標。這項指令會採用下列標記:

  • --delete-protection <deleteProtectionState> 允許或禁止刪除指定資料庫。有效值為 ENABLEDDISABLED。預設值為 DISABLED
  • --point-in-time-recovery <PITRState>,設定是否啟用時間點復原功能。有效值為 ENABLEDDISABLED。預設值為 DISABLED。選填。
firestore:databases:delete DATABASE_ID

刪除 Firebase 專案中的資料庫。

firestore:indexes

列出 Firebase 專案中資料庫的索引。

這項指令會採用下列旗標:

  • --database DATABASE_ID 指定要列出索引的資料庫名稱。如未提供,系統會列出預設資料庫的索引。
firestore:delete

刪除使用中專案資料庫中的文件。使用 CLI,即可遞迴刪除集合中的所有文件。

請注意,使用 CLI 刪除 Cloud Firestore 資料會產生讀取和刪除費用。詳情請參閱「瞭解 Cloud Firestore 計費方式」。

這項指令會採用下列旗標:

  • --database DATABASE_ID 指定要刪除文件的資料庫名稱。如未指定,系統會從預設資料庫刪除文件。選用。

Cloud Functions for Firebase 指令

指令 說明
functions:config:clone 將其他專案的環境複製到現有 Firebase 專案。
functions:config:get 擷取有效專案 Cloud Functions 的現有設定值。
functions:config:set 儲存有效專案 Cloud Functions 的執行階段設定值。
functions:config:unset 從有效專案的執行階段設定中移除值。
functions:log 讀取已部署 Cloud Functions 的記錄。

詳情請參閱環境設定說明文件

Crashlytics 指令

指令 說明
crashlytics:mappingfile:generateid \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML
在指定的 Android 資源 (XML) 檔案中產生專屬對應檔案 ID。
crashlytics:mappingfile:upload \
--app=FIREBASE_APP_ID \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML \
PATH/TO/MAPPING_FILE.TXT
為這個應用程式上傳與 Proguard 相容的對應 (TXT) 檔案,並將其與指定 Android 資源 (XML) 檔案中宣告的對應檔案 ID 建立關聯。
crashlytics:symbols:upload \
--app=FIREBASE_APP_ID \
PATH/TO/SYMBOLS
產生與 Crashlytics 相容的符號檔案,用於 Android 上的原生程式庫當機問題,並將檔案上傳至 Firebase 伺服器。

Data Connect 指令

如要進一步瞭解這些指令和使用案例,請參閱 Data Connect CLI 參考指南

指令 說明
dataconnect:services:list 列出 Firebase 專案中所有已部署的 Data Connect 服務。
dataconnect:sql:diff \
SERVICE_ID
針對指定服務,顯示本機 Data Connect 結構定義與 Cloud SQL 資料庫結構定義之間的差異。
dataconnect:sql:migrate \
--force \
SERVICE_ID
移轉 Cloud SQL 資料庫的結構定義,使其與本機 Data Connect 結構定義相符。
dataconnect:sql:grant\
--role=ROLE \
--email=EMAIL \
SERVICE_ID
將 SQL 角色授予指定使用者或服務帳戶的電子郵件地址。
如為 --role 旗標,要授予的 SQL 角色為:ownerwriterreader
針對 --email 旗標,請提供要授予角色的使用者或服務帳戶的電子郵件地址。
dataconnect:sdk:generate Data Connect 連接器產生具型別的 SDK。

Extensions 指令

指令 說明
ext 顯示如何使用 Firebase Extensions 指令的資訊。
列出有效專案中安裝的擴充功能例項。
ext:configure \
EXTENSION_INSTANCE_ID
重新設定擴充功能資訊清單中擴充功能例項的參數值。
ext:info \
PUBLISHER_ID/EXTENSION_ID
列印擴充功能的詳細資訊。
ext:install \
PUBLISHER_ID/EXTENSION_ID
擴充功能資訊清單中新增擴充功能執行個體。
ext:list 列出 Firebase 專案中安裝的所有擴充功能例項。
列印每個擴充功能的執行個體 ID。
ext:uninstall \
EXTENSION_INSTANCE_ID
擴充功能資訊清單中移除擴充功能例項。
ext:update \
EXTENSION_INSTANCE_ID
將擴充功能執行個體更新至擴充功能資訊清單中的最新版本。
ext:export 將專案中安裝的所有擴充功能執行個體匯出至擴充功能資訊清單

Extensions 個發布商指令

指令 說明
ext:dev:init 在目前目錄中,為新擴充功能初始化程式碼架構。
ext:dev:list \
PUBLISHER_ID
列印發布者上傳的所有擴充功能清單。
ext:dev:register 將 Firebase 專案註冊為擴充功能發布商專案
ext:dev:deprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
淘汰符合版本述詞的擴充功能版本。
版本述詞可以是單一版本 (例如 1.0.0), 也可以是版本範圍 (例如 >1.0.0)。
如果未提供版本述詞, 則會淘汰該擴充功能的所有版本。
ext:dev:undeprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
取消淘汰符合版本述詞的擴充功能版本。
版本述詞可以是單一版本 (例如 1.0.0), 也可以是版本範圍 (例如 >1.0.0)。
如果未提供版本述詞, 則會取消該擴充功能所有版本的淘汰狀態。
ext:dev:upload \
PUBLISHER_ID/EXTENSION_ID
上傳擴充功能的新版本。
ext:dev:usage \
PUBLISHER_ID
顯示發布者上傳的擴充功能安裝次數和使用指標。

Hosting 指令

指令 說明
hosting:disable

停止為有效 Firebase 專案提供 Firebase Hosting 流量。

執行這項指令後,專案的 Hosting URL 會顯示「找不到網站」訊息。

管理 Hosting 個網站
firebase hosting:sites:create \
SITE_ID

在有效的 Firebase 專案中,使用指定的 SITE_ID 建立新的 Hosting 網站

(選用) 傳遞下列旗標,指定要與新網站建立關聯的現有 Firebase 網頁應用程式: --app FIREBASE_APP_ID

firebase hosting:sites:delete \
SITE_ID

刪除指定的Hosting網站

CLI 會先顯示確認提示,再刪除網站。

(選用) 傳遞下列旗標,略過確認提示:-f--force

firebase hosting:sites:get \
SITE_ID

擷取指定Hosting網站的相關資訊

firebase hosting:sites:list

列出有效 Firebase 專案的所有 Hosting 網站

管理預覽管道
firebase hosting:channel:create \
CHANNEL_ID

預設 Hosting 網站中,使用指定的 CHANNEL_ID

這個指令不會部署至管道。

firebase hosting:channel:delete \
CHANNEL_ID

刪除指定的預覽版頻道

你無法刪除網站的即時頻道。

firebase hosting:channel:deploy \
CHANNEL_ID

Hosting 內容和設定部署至指定的預先發布版管道

如果預覽管道尚不存在,這個指令會在將內容部署至管道前,先在預設 Hosting 網站中建立管道。

firebase hosting:channel:list 列出 default Hosting 網站中的所有頻道 (包括「live」頻道)。
firebase hosting:channel:open \
CHANNEL_ID
開啟瀏覽器並前往指定頻道的網址,或在無法開啟瀏覽器時傳回網址
複製版本
firebase hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

將指定「來源」管道上最近部署的版本,複製到指定「目標」管道

這個指令也會部署至指定的「目標」管道。如果「target」管道尚不存在,這項指令會在「target」Hosting 網站中建立新的預覽管道,然後部署至該管道。

firebase hosting:clone \
SOURCE_SITE_ID:@VERSION_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

將指定版本複製到指定「目標」管道

這個指令也會部署至指定的「目標」管道。如果「target」管道尚不存在,這項指令會在「target」Hosting 網站中建立新的預覽管道,然後部署至該管道。

您可以在 Firebase 控制台的Hosting 資訊主頁中找到 VERSION_ID

Realtime Database 指令

請注意,您可以在 Firebase 控制台中建立初始預設的 Realtime Database 執行個體,也可以使用一般 firebase init 工作流程或特定 firebase init database 流程。

建立執行個體後,您可以按照「管理多個 Realtime Database 執行個體」一文所述的方式管理執行個體。

指令 說明
database:get 從有效專案的資料庫擷取資料,並以 JSON 格式顯示。支援查詢已建立索引的資料。
database:instances:create 建立具有指定執行個體名稱的資料庫執行個體。接受 --location 選項,在指定區域建立資料庫。如要瞭解這個選項適用的區域名稱,請參閱「為專案選取位置」。如果目前專案沒有資料庫執行個體,系統會提示您執行 firebase init 流程來建立執行個體。
database:instances:list 列出這個專案的所有資料庫執行個體。接受在指定區域列出資料庫的 --location 選項。如要瞭解使用這個選項時可用的區域名稱,請參閱選取專案位置
database:profile 為使用中專案的資料庫建立作業設定檔。詳情請參閱Realtime Database作業類型
database:push 將新資料推送至使用中專案資料庫中指定位置的清單。從檔案、標準輸入或指令列引數取得輸入內容。
database:remove 刪除有效專案資料庫中指定位置的所有資料。
database:set 取代有效專案資料庫中指定位置的所有資料。從檔案、標準輸入或指令列引數取得輸入內容。
database:update 在現用專案資料庫的指定位置執行部分更新。從檔案、標準輸入或指令列引數取得輸入內容。

Remote Config 指令

指令 說明
remoteconfig:versions:list \
--limit NUMBER_OF_VERSIONS
列出範本的最新十個版本。指定 0 即可傳回所有現有版本,或選擇傳遞 --limit 選項,限制傳回的版本數量。
remoteconfig:get \
--v, version_number VERSION_NUMBER
--o, output FILENAME
依版本取得範本 (預設為最新版本),並將參數群組、參數、條件名稱和版本輸出至表格。您也可以使用 -o, FILENAME 將輸出內容寫入指定檔案。
remoteconfig:rollback \
--v, version_number VERSION_NUMBER
--force
Remote Config 範本還原至指定的前一個版本號碼,或預設為前一個版本 (目前版本 -1)。除非通過 --force,否則系統會先顯示 Y/N 提示,再繼續執行回溯作業。