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 版本管理工具) 安裝 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. 下載適用於您 OS 的 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 版本管理員) 安裝 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

解除安裝 Firebase CLI

解除安裝 CLI 的方式取決於作業系統和 CLI 的安裝方式。

Windows

  • 獨立二進位檔:刪除下載的 firebase.exe 二進位檔。
  • npm:執行 npm uninstall -g firebase-tools

macOS

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

  • 獨立二進位檔:刪除下載的 firebase 二進位檔。如果您已將其位置新增至 PATH 環境變數,請務必移除。

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

Linux

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

  • 獨立二進位檔:刪除下載的 firebase 二進位檔。如果您已將其位置新增至 PATH 環境變數,請務必移除。

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

搭配使用 CLI 與 CI 系統

搭配 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 或 Authentication)。請注意,您隨時可以稍後執行 firebase init,設定更多 Firebase 產品。

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

firebase.json 檔案

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

firebase.json 檔案是使用 Firebase CLI 部署資產的必要檔案,因為該檔案會指定要從專案目錄部署哪些檔案和設定到 Firebase 專案 (例如 Hosting 設定、Authentication 供應商設定、安全性規則和 Cloud Functions 設定)。由於部分設定可以在專案目錄或 Firebase 控制台中定義,請務必解決任何潛在的部署衝突。

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

以下 firebase.json 檔案是完整範例,顯示多項 Firebase 服務的設定選項。此外,也示範了多程式碼集 Cloud Functions、Local Emulator Suite 設定和 Remote Config 範本等功能。請注意,任何專案的 firebase.json 檔案只會包含該專案設定的 Firebase 服務設定 (例如只有 Firebase Hosting 和 Cloud Functions)。新增 $schema 鍵後,許多程式碼編輯器就能啟用驗證和自動完成功能。

    {
      "$schema": "https://raw.githubusercontent.com/firebase/firebase-tools/master/schema/firebase-config.json",
      "hosting": {
        "public": "public",
        "ignore": [
          "firebase.json",
          "**/.*",
          "**/node_modules/**"
        ],
        "cleanUrls": true,
        "trailingSlash": false
      },
      "apphosting": {
        "backendId": "my-app",
        "rootDir": "backend",
        "ignore": [
          "firebase.json",
          "**/.*",
          "**/node_modules/**"
        ]
      },
      "firestore": {
        "rules": "firestore.rules",
        "indexes": "firestore.indexes.json"
      },
      "storage": {
        "rules": "storage.rules"
      },
      "database": {
        "rules": "database.rules.json"
      },
      "dataconnect": {
        "source": "dataconnect",
        "location": "us-central1"
      },
      "functions": [
        {
          "source": "functions",
          "codebase": "default",
          "ignore": [
            "**/.*",
            "**/node_modules/**"
          ],
          "predeploy": [
            "npm --prefix \"$RESOURCE_DIR\" run lint",
            "npm --prefix \"$RESOURCE_DIR\" run build"
          ]
        }
      ],
      "emulators": {
        "auth": {
          "port": 9099
        },
        "functions": {
          "port": 5001
        },
        "firestore": {
          "port": 8080
        },
        "hosting": {
          "port": 5000
        },
        "storage": {
          "port": 9199
        },
        "ui": {
          "enabled": true,
          "port": 4000
        },
        "singleProjectMode": true
      },
      "extensions": {
        "my-storage-resizer": "firebase/storage-resize-images@^0.1.0"
      },
      "auth": {
        "providers": {
          "anonymous": true,
          "emailPassword": true,
          "googleSignIn": {
            "oAuthBrandDisplayName": "My App",
            "supportEmail": "support@myapp.com"
          }
        }
      },
      "remoteconfig": {
        "template": "remoteconfig.template.json"
      }
    }

雖然系統預設會使用 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 託管應用程式的靜態內容。
  • 使用 Cloud Functions 為 Firebase Hosting 產生動態內容,並想使用 正式版 (已部署) HTTP 函式,在本機網址上模擬 Hosting。
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 SQL Connect 的新版或更新版結構定義和連接器
  • 出局 Security Rules 人,得分 Firebase Realtime Database
  • 出局 Security Rules 人,得分 Cloud Storage for Firebase
  • 出局 Security Rules 人,得分 Cloud Firestore
  • Cloud Firestore 的索引
  • Authentication 的設定

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

firebase deploy

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

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

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

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

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

部署特定 Firebase 服務

如果只想部署特定 Firebase 服務或功能,可以在 firebase deploy 指令的旗標中使用逗號分隔的清單。舉例來說,下列指令會部署 Firebase Hosting 內容和 Cloud Storage Security Rules。

firebase deploy --only hosting,storage

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

旗標語法 已部署的服務或功能
--only auth Authentication 提供者設定
--only database Firebase Realtime Database Security Rules
--only dataconnect Firebase SQL Connect 結構定義和連接器
--only firestore Cloud Firestore Security Rules 和所有已設定資料庫的索引
--only functions Cloud Functions for Firebase
--only hosting Firebase Hosting內容
--only storage Cloud Storage for Firebase Security Rules

Security Rules 的部署作業衝突

如果是 Firebase Realtime Database、Cloud Storage for Firebase 和 Cloud Firestore,您可以在本機專案目錄或 Firebase 控制台中定義 Security Rules。

另一個避免部署衝突的方法是使用部分部署,並只在 Firebase 控制台中定義 Security Rules。

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

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

如要設定部署前或部署後掛鉤,請在 firebase.json 設定檔中新增 Bash 指令碼。您可以直接在 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

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

predeploy 和 postdeploy 鉤子都會將指令碼的標準輸出內容和錯誤串流輸出至終端機。如果失敗,請注意下列事項:

  • 如果預先部署掛鉤無法如預期完成,部署作業就會取消。
  • 如果部署作業因任何原因失敗,就不會觸發部署後掛鉤。

環境變數

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

  • $GCLOUD_PROJECT:使用中專案的專案 ID
  • $PROJECT_DIR:包含 firebase.json 檔案的根目錄
  • $RESOURCE_DIR:(僅適用於 hosting 和 functions 指令碼) 包含要部署的 Hosting 或 Cloud Functions 資源的目錄位置

部署配額

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

復原部署作業

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

無法復原 Firebase Realtime Database、Cloud Storage for Firebase 或 Cloud Firestore 的 Security Rules 版本。

指令參考資料

本節說明下列用途和產品的可用指令:

CLI 管理指令

指令 說明
help 顯示 CLI 或特定指令的說明資訊。
init 在目前目錄中建立新的 Firebase 專案,並與該專案建立關聯。
這個指令會在目前目錄中建立 firebase.json 設定檔。
login

使用 Google 帳戶驗證 CLI。需要存取網路瀏覽器。

如要在不允許存取 localhost 的遠端環境中登入 CLI,請使用 --no-localhost 旗標。

login:ci 已淘汰。 請改用應用程式預設憑證和 Google Cloud 服務帳戶 (GOOGLE_APPLICATION_CREDENTIALS)。
產生驗證權杖,以便在非互動式環境中使用。
login:add 登入其他 Google 帳戶。
login:list 列出所有已驗證的 Google 帳戶。
login:use \
EMAIL_ADDRESS
設定使用中的 Google 帳戶。
logout 從 CLI 登出 Google 帳戶。
open 開啟瀏覽器,前往相關專案資源。
projects:list 列出您有權存取的所有 Firebase 專案。
use

設定 CLI 的有效 Firebase 專案。

進一步瞭解如何管理專案別名。

專案管理指令

指令 說明
管理 Firebase 專案
projects:addfirebase 在「現有」Google Cloud 專案中,新增 Firebase 專屬設定並啟用 Firebase 專屬服務。
projects:create 建立新的 Google Cloud 專案,然後新增 Firebase 專屬設定,並為新專案啟用 Firebase 專屬服務。
projects:list 列出您有權存取的所有 Firebase 專案。
管理 Firebase 應用程式 (iOS、Android、網頁)
apps:create 建立新的 Firebase 應用程式。
apps:list 列出有效 Firebase 專案中所有已註冊的 Firebase 應用程式。
apps:sdkconfig \
[PLATFORM] \
[FIREBASE_APP_ID]

列印指定 Firebase 應用程式的 Firebase 設定。

  • PLATFORM 可以是 IOS、ANDROID 或 WEB (不區分大小寫)。如果省略,CLI 會提示您從顯示的清單中選取應用程式,清單中會列出有效 Firebase 專案中的所有 Firebase 應用程式。如果有效的 Firebase 專案只有一個 Firebase 應用程式,CLI 會自動選取該應用程式。
  • FIREBASE_APP_ID 是 Firebase 應用程式的應用程式 ID (必須先指定 PLATFORM)。如果省略,CLI 會自動選取應用程式 (如果只有一個相符),或提示您選取應用程式 (如果有多個相符)。

如果 CLI 是以非互動模式執行:

  • 如果有效的 Firebase 專案只有一個 Firebase 應用程式,則可省略 PLATFORM 和 FIREBASE_APP_ID。
  • 如果有效的 Firebase 專案有多個 Firebase 應用程式,則必須指定 PLATFORM (如果專案有多個該平台類型的 Firebase 應用程式,則為 FIREBASE_APP_ID)。

這個指令支援下列選用旗標:

  • -o 或 --out [FILENAME]
    將設定輸出內容寫入檔案,而非輸出至標準輸出內容。如果省略 FILENAME,則會預設為平台專屬檔案名稱 (iOS 為 GoogleService-Info.plist、Android 為 google-services.json,網頁則為 firebase-js-config.json)。如果目標檔案已存在,CLI 會提示您確認是否要覆寫 (或在非互動模式下失敗)。
管理 SHA 憑證雜湊 (僅限 Android)
apps:android:sha:create \
FIREBASE_ANDROID_APP_ID \
SHA_HASH
將指定的安全雜湊演算法 (SHA) 憑證雜湊新增至指定的 Firebase Android 應用程式。
apps:android:sha:delete \
FIREBASE_ANDROID_APP_ID \
SHA_ID
從指定的 Firebase Android 應用程式中,刪除指定的 SHA 憑證 (由 apps:android:sha:list 的 SHA_ID 識別)。
apps:android:sha:list \
FIREBASE_ANDROID_APP_ID
列出指定 Firebase Android 應用程式的所有安全雜湊演算法 (SHA) 憑證雜湊。

部署和本機開發

這些指令可讓您部署及與 Firebase 專案互動。

指令 說明
deploy

將專案目錄中的程式碼和資產部署至有效的 Firebase 專案。

這項指令需要專案目錄中的 firebase.json 設定檔。

進一步瞭解如何部署至 Firebase 專案。

serve

啟動本機伺服器,測試 Firebase Hosting 設定和/或本機 HTTP Cloud Functions (例如使用 --only hosting 或 --only functions)。

這項指令需要專案目錄中的 firebase.json 設定檔。

進一步瞭解如何在本機提供及測試。

App Distribution 指令

指令 說明
appdistribution:distribute \
RELEASE_BINARY_FILE \
--app FIREBASE_APP_ID
上傳指定的版本二進位檔案 (.apk、.aab 或 .ipa),並提供給指定 Firebase 應用程式的測試人員。
appdistribution:testers:add \
[EMAILS...]

將一或多位測試人員 (以空格分隔的 EMAILS 指定) 新增至有效的 Firebase 專案。如果省略 EMAILS,則必須傳遞 --file FILE。

這個指令只會新增尚未加入專案的測試人員,不會移除或覆寫現有測試人員。

這個指令支援下列選用旗標:

  • --file FILE
    指定非空白檔案的路徑,檔案中應包含要新增的測試人員電子郵件地址,並以半形逗號或換行符號分隔。如果同時傳遞 EMAILS 和 --file,系統會優先採用 EMAILS。
  • --group-alias GROUP_ALIAS
    此外,請將指定的測試人員新增至 GROUP_ALIAS 識別的測試人員群組。
appdistribution:testers:remove \
[EMAILS...]

從有效的 Firebase 專案中移除測試人員 (以空格分隔的 EMAILS)。如果省略 EMAILS,則必須傳遞 --file FILE。

這個指令支援下列選用旗標:

  • --file FILE
    指定檔案路徑,該檔案包含要移除的測試人員電子郵件地址,並以半形逗號或換行符號分隔。(如果同時傳遞 EMAILS 和 --file,系統會優先採用 EMAILS)。
  • --group-alias GROUP_ALIAS
    「僅」從 GROUP_ALIAS 識別的測試人員群組 中移除指定的測試人員,而非從 有效的 Firebase 專案中移除。
appdistribution:testers:list 列出有效 Firebase 專案中的測試人員。
appdistribution:groups:create \
DISPLAY_NAME \
[GROUP_ALIAS]
使用指定的 DISPLAY_NAME 和選用的 GROUP_ALIAS 建立測試人員群組。
如果省略 GROUP_ALIAS,系統會自動從 DISPLAY_NAME 產生別名。
appdistribution:groups:delete \
GROUP_ALIAS
刪除具有指定別名的測試人員群組。
appdistribution:groups:list 列出有效 Firebase 專案中的所有測試人員群組。

App Hosting 指令

指令 說明
apphosting:backends:create \
--backend BACKEND_ID \
--primary-region REGION_NAME \
--app FIREBASE_WEB_APP_ID

建立一組連結至單一程式碼集的代管資源,其中包含 App Hosting 後端。

這個指令支援下列選用 (但建議使用) 旗標:

  • --backend BACKEND_ID
    指定新 App Hosting 後端的 ID。 如果在互動模式中省略,CLI 會提示您輸入後端 ID。
  • --primary-region REGION_NAME
    指定要建立App Hosting後端的主要區域。 如果在互動模式中省略,CLI 會提示您選取位置。瞭解App Hosting 支援的位置。
  • -a 或 --app FIREBASE_WEB_APP_ID
    指定現有 Firebase 網頁應用程式的應用程式 ID。如果省略,CLI 會自動建立並連結新的 Firebase 網頁應用程式,並以 BACKEND_ID 命名 (除非專案已達 Firebase 應用程式配額)。

這個指令也支援下列選用旗標:

  • --root-dir ROOT_DIR
    指定應用程式相對於存放區的根目錄。如果在互動模式中省略,CLI 會提示您輸入目錄 (預設為 /)。
  • -s 或 --service-account SERVICE_ACCOUNT
    指定用於執行伺服器的服務帳戶。 如未指定,則預設為預設的 App Hosting 運算服務帳戶。

如果 CLI 是以非互動模式執行,則必須提供 --backend 和 --primary-region。

apphosting:backends:get \
BACKEND_ID

擷取指定 App Hosting 後端的詳細資料,包括公開網址。

如果多個區域包含具有指定 BACKEND_ID 的後端,CLI 會記錄警告並輸出第一個相符的後端 (請注意,這個指令不支援 --location 旗標)。

apphosting:backends:list 列出有效 Firebase 專案中所有有效的 App Hosting 後端。
apphosting:backends:delete \
BACKEND_ID

刪除指定的 App Hosting 後端。

CLI 會在採取行動前顯示確認提示。如要略過確認提示 (非互動模式下必須執行),請傳遞下列旗標:-f 或 --force。

如果多個區域包含具有指定 BACKEND_ID 的後端,CLI 會在互動模式中提示您選取要刪除的後端,並在傳遞 -f 或 --force 時失敗 (請注意,這個指令不支援 --location 旗標)。

apphosting:rollouts:create \
BACKEND_ID

為指定的 App Hosting 後端建立手動觸發的推出作業。

這個指令支援下列選用且互斥的旗標。如果兩者皆未提供,CLI 會提示您從分支版本清單中選取;在非互動模式下,則必須提供其中一個旗標。

  • -b 或 --git-branch BRANCH_NAME
    在指定的 Git 分支版本上部署最新修訂版本。
  • -g 或 --git-commit COMMIT_ID
    部署指定的 Git 修訂版本。

如果多個區域包含具有指定 BACKEND_ID 的後端,則這個指令在互動和非互動模式下都會失敗 (請注意,這個指令不支援 --location 旗標)。

apphosting:secrets:set \
SECRET_NAME \
--data-file DATA_FILE_PATH

使用指定的 SECRET_NAME 在 Google Cloud Secret Manager 中建立或更新密鑰。

這個指令支援下列選用 (但建議使用) 旗標:

  • --data-file DATA_FILE_PATH
    指定要讀取密鑰資料的路徑,或設為 -,從標準輸入內容讀取密鑰資料。 如省略,CLI 會提示您輸入密鑰值 (輸入內容會遮蓋),或從標準輸入內容 (如果標準輸入內容已透過管道傳送) 讀取。

這個指令也支援下列選用旗標:

  • -l 或 --location REGION_NAME
    建立新 Secret 時,限制只能複製到指定的 Google Cloud Secret Manager 區域。 如果省略,Google Cloud Secret Manager 會使用自動全域複製功能。(現有密鑰的複製政策無法變更)。

如果 CLI 是在非互動模式下執行,請傳遞 --data-file DATA_FILE_PATH (或將 Secret 值傳送至標準輸入內容)。

apphosting:secrets:grantaccess \
SECRET_NAME

將指定密鑰的權限授予一組使用者或群組電子郵件地址,或後端的服務帳戶。App Hosting 可以在建構或執行階段存取 Secret。

您可以傳送一或多個 SECRET_NAME 值,並以半形逗號分隔。您必須指定 --emails 或 --backend (這兩個旗標互斥)。

將存取權授予一組使用者或群組電子郵件地址:

  • -e 或 --emails EMAILS
    指定使用者或群組電子郵件清單 (以半形逗號分隔),這些使用者或群組應獲得指定密鑰的存取權。

將存取權授予後端的服務帳戶:

  • -b 或 --backend BACKEND_ID
    指定 App Hosting 後端,其服務帳戶應獲得指定密鑰的存取權。
  • -l 或 --location REGION_NAME
    指定 App Hosting 後端的區域。如果省略,CLI 會在所有區域中搜尋相符的 BACKEND_ID;如果多個區域包含具有該 ID 的後端,CLI 會提示您在互動模式中選擇一個 (在非互動模式中,必須提供 --location)。
apphosting:secrets:revokeaccess \
SECRET_NAME

撤銷一組使用者或群組電子郵件地址,或後端服務帳戶對指定密鑰的權限。

您可以傳送一或多個 SECRET_NAME 值,並以半形逗號分隔。您必須指定 --emails 或 --backend (這兩個旗標互斥)。

撤銷一組使用者或群組電子郵件地址的存取權:

  • -e 或 --emails EMAILS
    指定以半形逗號分隔的使用者或群組電子郵件清單,撤銷這些使用者或群組對指定密鑰的存取權。

撤銷後端服務帳戶的存取權:

  • -b 或 --backend BACKEND_ID
    指定 App Hosting 後端,其服務帳戶應撤銷指定密鑰的存取權。
  • -l 或 --location REGION_NAME
    指定 App Hosting 後端的區域。如果省略,CLI 會在所有區域中搜尋相符的 BACKEND_ID;如果多個區域包含具有該 ID 的後端,CLI 會提示您在互動模式中選擇一個 (在非互動模式中,必須提供 --location)。
apphosting:secrets:describe \
SECRET_NAME
擷取指定密鑰名稱的中繼資料和版本。
apphosting:secrets:access \
SECRET_NAME[@VERSION]
存取指定密鑰名稱和指定版本的密鑰值。
如果省略 [@VERSION],預設會存取最新版本。

Authentication (使用者管理) 指令

指令 說明
auth:export \
DATA_FILE

將有效 Firebase 專案的使用者帳戶匯出為 JSON 或 CSV 檔案。

詳情請參閱「auth:import 和 auth:export」頁面。

auth:import \
DATA_FILE

將 JSON 或 CSV 檔案中的使用者帳戶匯入至有效的 Firebase 專案。

詳情請參閱「auth:import 和 auth:export」頁面。

Cloud Firestore 指令

指令 說明
firestore:locations

列出有效 Firebase 專案中 Cloud Firestore 資料庫執行個體的可用位置。

瞭解 Standard 版、Enterprise 版和 MongoDB 相容性的可用位置。

firestore:databases:create \
DATABASE_ID \
--location REGION_NAME

在指定位置建立指定的 Cloud Firestore 資料庫執行個體 (原生模式)。
執行 firebase firestore:locations,列出 REGION_NAME 的可用位置。

這個指令支援下列選用旗標:

  • --delete-protection DELETION_PROTECTION_STATE
    允許或禁止刪除指定的 Cloud Firestore 資料庫執行個體。 有效值為 ENABLED 或 DISABLED。 如省略,則預設為 DISABLED。
  • --point-in-time-recovery PITR_STATE
    設定是否為指定的 Cloud Firestore 資料庫執行個體啟用時間點復原功能。 有效值為 ENABLED 或 DISABLED。 如省略,則預設為 DISABLED。
  • --edition EDITION
    設定指定 Cloud Firestore 資料庫執行個體的版本。
    有效值為 standard 或 enterprise。 如省略,則預設為 standard。
  • --firestore-data-access ENABLEMENT_STATE
    (僅限 Enterprise 版本) 控管 Cloud Firestore API 可用性。 有效值為 ENABLED 或 DISABLED。 如省略,則預設為 ENABLED (不過,如果 --mongodb-compatible-data-access 為 ENABLED,則預設為 DISABLED)。
  • --mongodb-compatible-data-access ENABLEMENT_STATE
    (僅限 Enterprise 版) 控管與 MongoDB 相容的 API 可用性。 有效值為 ENABLED 或 DISABLED。 如省略,則預設為 DISABLED。
  • --realtime-updates ENABLEMENT_STATE
    (僅限 Enterprise 版本) 啟用或停用「監看」(即時) 功能。 有效值為 ENABLED 或 DISABLED。 如果省略,當 --firestore-data-access 為 ENABLED 時,預設值為 ENABLED (否則會使用伺服器預設值)。
    如要設定這個旗標,--firestore-data-access 必須為 ENABLED。
firestore:databases:list

列出有效 Firebase 專案中的所有 Cloud Firestore 資料庫執行個體。

firestore:databases:get \
[DATABASE_ID]

擷取指定 Cloud Firestore 資料庫執行個體的資料庫設定。
如果省略 DATABASE_ID,則預設為使用中 Firebase 專案的「預設」Cloud Firestore 資料庫執行個體。

資料表輸出內容包含所有資料庫的 Edition。只有在傳遞 --json 時,原始 JSON 輸出內容才會包含企業資料存取權和即時更新狀態欄位。

firestore:databases:update \
DATABASE_ID

更新指定 Cloud Firestore 資料庫執行個體的資料庫設定。

至少須提供一個旗標 (省略的旗標會保留目前設定)。這個指令支援下列旗標:

  • --delete-protection DELETION_PROTECTION_STATE
    允許或禁止刪除指定的 Cloud Firestore 資料庫執行個體。 有效值為 ENABLED 或 DISABLED。
  • --point-in-time-recovery PITR_STATE
    設定是否為指定的 Cloud Firestore 資料庫執行個體啟用時間點復原功能。 有效值為 ENABLED 或 DISABLED。
firestore:databases:delete \
DATABASE_ID

刪除指定的 Cloud Firestore 資料庫執行個體。

CLI 會在採取行動前顯示確認提示。如要略過確認提示 (非互動模式下必須執行),請傳遞 --force 旗標。(與其他指令不同,firestore:databases:delete 不支援 -f 簡寫)。

firestore:indexes

列出 Cloud Firestore 資料庫執行個體的所有索引。

這個指令支援下列選用旗標:

  • --database DATABASE_ID
    指定要列出索引的 Cloud Firestore 資料庫執行個體。 如省略,系統會列出有效 Firebase 專案預設 Cloud Firestore 資料庫執行個體的索引。
firestore:delete \
[PATH]

從 Cloud Firestore 資料庫執行個體中,刪除指定資料庫路徑 (PATH) 的文件。

除非傳遞 --all-collections,否則必須提供 PATH。除非傳遞 -r/--recursive 或 --shallow,否則無法刪除含有子集合的集合或文件。

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

這個指令支援下列選用旗標:

  • --database DATABASE_ID
    指定要刪除文件的 Cloud Firestore 資料庫。 如省略,系統會從有效 Firebase 專案的預設Cloud Firestore資料庫執行個體刪除文件。
  • --all-collections
    刪除資料庫中的所有集合。(使用這個旗標時,請勿傳遞 PATH)。
  • -r 或 --recursive
    遞迴刪除指定路徑中的所有文件和子集合。(無法與 --shallow 一起傳遞)。
  • --shallow
    僅刪除指定層級的文件,並忽略子集合中的文件。請注意,這可能會導致巢狀文件孤立。(無法與 -r 或 --recursive 一併傳遞)。

CLI 會在採取行動前顯示確認提示。如要略過確認提示 (非互動模式下必須執行),請傳遞下列旗標:-f 或 --force。

Cloud Functions for Firebase 指令

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

指令 說明
functions:config:export

將使用中 Firebase 專案的舊版 functions.config() 執行階段設定,匯出為 Google Cloud Secret Manager 中的單一 JSON 密鑰 (用於 defineJsonSecret)。

這個指令支援下列選用旗標:

  • --secret SECRET_NAME
    在 Google Cloud Secret Manager 中指定要建立或更新的密鑰名稱。 如未指定,CLI 會提示您輸入名稱 (預設為 FUNCTIONS_CONFIG_EXPORT)。
  • -f 或 --force
    使用預設密鑰名稱 (FUNCTIONS_CONFIG_EXPORT),不顯示提示。如果密鑰已存在,則新增密鑰版本,不顯示確認訊息。(在非互動模式下,必須提供這個引數,才能為現有密鑰新增版本)。
functions:delete \
FUNCTION_NAME...

從使用中的 Firebase 專案刪除一或多個指定函式。

CLI 會在採取行動前顯示確認提示。如要略過確認提示 (非互動模式下必須執行),請傳遞下列旗標:-f 或 --force。

functions:list 列出使用中 Firebase 專案內所有已部署的函式。
functions:log 讀取有效 Firebase 專案中所有已部署 Cloud Functions 的記錄。
functions:secrets:access \
SECRET_NAME[@VERSION]
存取指定密鑰名稱和指定版本的密鑰值。
如果省略 [@VERSION],預設會存取最新版本。
functions:secrets:destroy \
SECRET_NAME[@VERSION]

刪除指定版本的指定密鑰。
如果省略 [@VERSION],預設會刪除最新版本。

CLI 會在採取行動前顯示確認提示,並在非互動模式下自動確認,不需使用 -f 或 --force。不過,如果 Secret 仍繫結至有效的函式端點,則必須傳遞 -f 或 --force 才能刪除。

functions:secrets:get \
SECRET_NAME
擷取指定密鑰名稱的中繼資料和版本。
functions:secrets:prune 刪除使用中 Firebase 專案內所有未使用的 Secret。
functions:secrets:set \
SECRET_NAME
建立或更新指定的密鑰。
functions:shell 啟動本機互動式殼層,測試函式。
functions:config:clone \
--from PROJECT_ID

已淘汰。
將其他專案的環境複製到使用中的 Firebase 專案。

預設停用。如要使用這個指令,請先執行 firebase experiments:enable legacyRuntimeConfigCommands。

functions:config:get 已淘汰。
擷取有效 Firebase 專案 Cloud Functions 的現有設定值。
functions:config:set \
KEY=VALUE...

已淘汰。
儲存有效 Firebase 專案 Cloud Functions 的執行階段設定值。

預設停用。如要使用這個指令,請先執行 firebase experiments:enable legacyRuntimeConfigCommands。

functions:config:unset \
KEY...

已淘汰。
從使用中 Firebase 專案的執行階段設定中移除值。

預設停用。如要使用這個指令,請先執行 firebase experiments:enable legacyRuntimeConfigCommands。

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
為指定的 Firebase 應用程式上傳 Proguard 相容對應 (TXT) 檔案,並與指定 Android 資源 (XML) 檔案中宣告的對應檔案 ID 建立關聯。
crashlytics:symbols:upload \
--app FIREBASE_APP_ID \
PATH/TO/SYMBOLS...

為 Android 原生程式庫當機 (例如 Android NDK,或 Unity 或 Flutter 的 Android 版本) 產生與 Crashlytics 相容的符號檔案,並上傳至 Firebase 伺服器。

這項指令僅支援 Android。如果是 iOS dSYM,請使用 Apple SDK 的 upload-symbols 指令碼。

Extensions 指令

指令 說明
ext 顯示 Firebase Extensions 指令的使用資訊。
列出有效專案中安裝的擴充功能執行個體。
ext:configure \
EXTENSION_INSTANCE_ID
在擴充功能資訊清單中,重新設定擴充功能執行個體的參數值。
ext:info \
PUBLISHER_ID/EXTENSION_ID
列印擴充功能的詳細資訊。
ext:install \
PUBLISHER_ID/EXTENSION_ID
在擴充功能資訊清單中新增擴充功能。
ext:sdk:install \
EXTENSION_NAME
安裝 SDK,在函式中定義擴充功能。
ext:list 列出 Firebase 專案中安裝的所有擴充功能執行個體。
列印每個擴充功能的執行個體 ID。
ext:uninstall \
EXTENSION_INSTANCE_ID
從擴充功能資訊清單中移除擴充功能執行個體。
ext:update \
EXTENSION_INSTANCE_ID \
[UPDATE_SOURCE]

在擴充功能資訊清單中,將擴充功能執行個體更新至最新版本 (或指定的已發布 UPDATE_SOURCE 版本)。請注意,UPDATE_SOURCE 不支援本機路徑和網址。

CLI 會在採取行動前顯示確認提示。您可以傳遞 -f 或 --force,在互動模式中略過這項提示。不過,ext:update 是僅限互動模式的指令,即使使用 -f 或 --force,非互動模式也不支援。

ext:export 將專案中所有已安裝的擴充功能執行個體匯出至擴充功能資訊清單。

Extensions 個發布商指令

指令 說明
ext:dev:init 在目前目錄中,為新擴充功能初始化骨架程式碼集。
ext:dev:list \
PUBLISHER_ID
列印發布者上傳的所有擴充功能清單。
ext:dev:register 已停用。
系統已不支援註冊新的發布商設定檔 ID。
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

停止為 Hosting 網站提供 Firebase Hosting 流量。

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

這個指令支援下列選用旗標:

  • --site SITE_ID
    指定要停用的 Hosting 網站。 如省略,則預設為使用中 Firebase 專案的預設 Hosting 網站。

CLI 會在採取行動前顯示確認提示。如要略過確認提示 (非互動模式下必須執行),請傳遞下列旗標:-f 或 --force。

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

使用指定的 SITE_ID 建立新的 Hosting 網站。

如果 CLI 是以非互動模式執行,則必須提供 SITE_ID。

這個指令支援下列選用旗標:

  • --app FIREBASE_APP_ID
    指定要與新 Hosting 網站建立關聯的現有 Firebase 網頁應用程式。
hosting:sites:delete \
SITE_ID

刪除指定的 Hosting 網站。

CLI 會在採取行動前顯示確認提示。如要略過確認提示 (非互動模式下必須執行),請傳遞下列旗標:-f 或 --force。

hosting:sites:get \
SITE_ID

擷取指定 Hosting 網站的詳細資料。

表格輸出內容包含網站 ID、預設網址和 Firebase 網頁應用程式 ID (如有連結)。只有在傳遞 --json 時,原始 JSON 輸出內容才會包含其他中繼資料 (例如網站是否為 DEFAULT_SITE 或 USER_SITE)。

hosting:sites:list 列出有效 Firebase 專案中的所有 Hosting 網站。
管理預先發布版
hosting:channel:create \
[CHANNEL_ID]

使用指定的 CHANNEL_ID 為 Hosting 網站建立新的預覽管道。
這個指令不會部署至管道。

如果 CLI 是以非互動模式執行,則必須提供 CHANNEL_ID。

這個指令支援下列選用旗標:

  • --site SITE_ID
    指定要建立預覽管道的 Hosting 網站。 如省略,則預設為使用中 Firebase 專案的預設 Hosting 網站。
hosting:channel:delete \
CHANNEL_ID

刪除指定的預先發布版管道。您無法刪除網站的直播頻道。

這個指令支援下列選用旗標:

  • --site SITE_ID
    指定要刪除預覽頻道的 Hosting 網站。 如省略,則預設為使用中 Firebase 專案的預設 Hosting 網站。

CLI 會在採取行動前顯示確認提示。如要略過確認提示 (非互動模式下必須執行),請傳遞下列旗標:-f 或 --force。

hosting:channel:deploy \
CHANNEL_ID

將 Hosting 內容和設定部署至指定的預先發布版管道。
如果預覽管道尚不存在,這項指令會在 Hosting 網站中建立管道,然後部署至管道。

這個指令支援下列選用旗標:

  • --only TARGETS
    指定在 firebase.json 中設定的 Hosting 目標清單 (以半形逗號分隔),以便部署至預先發布版管道。如果省略,則會部署至 firebase.json 中設定的所有 Hosting 網站。
hosting:channel:list

列出 Hosting 網站的所有管道 (包括「live」管道)。

這個指令支援下列選用旗標:

  • --site SITE_ID
    指定要列出管道的 Hosting 網站。 如省略,則預設為使用中 Firebase 專案的預設 Hosting 網站。
hosting:channel:open \
[CHANNEL_ID]

在瀏覽器中開啟指定頻道的網址,如果無法在瀏覽器中開啟,則傳回網址。

如果 CLI 是以非互動模式執行,則必須提供 CHANNEL_ID。

這個指令支援下列選用旗標:

  • --site SITE_ID
    指定預先發布版管道的 Hosting 網站。 如省略,則預設為使用中 Firebase 專案的預設 Hosting 網站。
複製版本
hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

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

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

hosting:clone \
SOURCE_SITE_ID@VERSION_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

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

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

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

Realtime Database 指令

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

建立執行個體後,您可以按照「使用 CLI 管理特定執行個體並與其互動」一節所述的方式管理執行個體。

指令 說明
database:get \
PATH

擷取 Realtime Database 執行個體指定資料庫位置 (PATH) 的資料,並以 JSON 格式顯示。支援查詢已建立索引的資料。

這個指令支援下列選用旗標:

  • --instance DATABASE_NAME
    指定動作的 Realtime Database 例項。 如省略,則預設為使用中 Firebase 專案的預設Realtime Database執行個體。
database:instances:create \
DATABASE_NAME \
--location REGION_NAME

在指定位置建立具有指定 DATABASE_NAME 的 Realtime Database 執行個體。

這個指令支援下列選用 (但建議使用) 旗標:

您無法使用這個指令,為使用中的 Firebase 專案建立預設 Realtime Database 執行個體。如果專案 不含任何現有的 Realtime Database 執行個體,系統會提示您 執行 firebase init 流程,建立 專案的第一個 Realtime Database 執行個體 (預設執行個體)。

database:instances:list

列出有效 Firebase 專案中的所有 Realtime Database 執行個體。

這個指令支援下列選用旗標:

  • --location REGION_NAME
    指定特定位置,列出 Realtime Database 執行個體。如要查看可用的區域名稱,請參閱「Realtime Database 的位置」。
database:profile

建立 Realtime Database 執行個體的作業設定檔。
詳情請參閱「Realtime Database 作業類型」。

這個指令支援下列選用旗標:

  • --instance DATABASE_NAME
    指定動作的 Realtime Database 例項。 如省略,則預設為使用中 Firebase 專案的預設Realtime Database執行個體。
database:push \
PATH \
[INFILE]

將新資料推送至 Realtime Database 執行個體中指定資料庫位置 (PATH) 的清單。

從檔案 (INFILE)、STDIN 或 -d (--data) 旗標擷取輸入內容。

這個指令支援下列選用旗標:

  • --instance DATABASE_NAME
    指定動作的 Realtime Database 例項。 如省略,則預設為使用中 Firebase 專案的預設Realtime Database執行個體。
database:remove \
PATH

刪除 Realtime Database 執行個體中指定資料庫位置 (PATH) 的所有資料。

這個指令支援下列選用旗標:

  • --instance DATABASE_NAME
    指定動作的 Realtime Database 例項。 如省略,則預設為使用中 Firebase 專案的預設Realtime Database執行個體。

CLI 會在採取行動前顯示確認提示。如要略過確認提示 (非互動模式下必須執行),請傳遞下列旗標:-f 或 --force。

database:set \
PATH \
[INFILE]

取代 Realtime Database 執行個體中指定資料庫位置 (PATH) 的所有資料。

從檔案 (INFILE)、STDIN 或 -d (--data) 旗標擷取輸入內容。

這個指令支援下列選用旗標:

  • --instance DATABASE_NAME
    指定動作的 Realtime Database 例項。 如省略,則預設為使用中 Firebase 專案的預設Realtime Database執行個體。

CLI 會在採取行動前顯示確認提示。如要略過確認提示 (非互動模式下必須執行),請傳遞下列旗標:-f 或 --force。

database:update \
PATH \
[INFILE]

在 Realtime Database 執行個體中,對指定的資料庫位置 (PATH) 執行部分更新。

從檔案 (INFILE)、STDIN 或 -d (--data) 旗標擷取輸入內容。

這個指令支援下列選用旗標:

  • --instance DATABASE_NAME
    指定動作的 Realtime Database 例項。 如省略,則預設為使用中 Firebase 專案的預設Realtime Database執行個體。

CLI 會在採取行動前顯示確認提示。如要略過確認提示 (非互動模式下必須執行),請傳遞下列旗標:-f 或 --force。

Remote Config 指令

如要進一步瞭解這些指令和用途,請參閱「透過程式輔助方式修改 Remote Config」。

指令 說明
remoteconfig:versions:list

列出 Remote Config 範本的所有版本。

這個指令支援下列選用旗標:

  • --limit NUMBER_OF_VERSIONS
    指定要傳回的版本數量上限。 指定 0 即可傳回所有現有版本。 如省略,則預設為 10。
remoteconfig:get \
--version-number VERSION_NUMBER

擷取指定版本 Remote Config 範本的詳細資料。

這個指令支援下列選用 (但建議使用) 旗標:

  • -v 或 --version-number VERSION_NUMBER
    指定要擷取的 Remote Config 範本版本。 如未指定,則預設為最新版本。
  • -o 或 --output FILENAME
    將輸出內容寫入指定檔案名稱的 JSON 檔案,而非輸出為表格。
remoteconfig:rollback \
--version-number VERSION_NUMBER

將 Remote Config 範本復原至指定的先前版本。

這個指令支援下列選用 (但建議使用) 旗標:

  • -v 或 --version-number VERSION_NUMBER
    指定要復原至哪個版本的 Remote Config 範本。 如果省略,則預設為前一個版本 (目前版本 - 1)。

CLI 會在採取行動前顯示確認提示。如要略過確認提示 (非互動模式下必須執行),請傳遞下列旗標:-f 或 --force。

remoteconfig:experiments:list

列出有效 Firebase 專案中的所有 Remote Config 實驗。

這個指令支援下列選用旗標:

  • --filter EXPRESSION
    指定篩選實驗的運算式。
  • --pageSize NUMBER
    指定每頁要傳回的實驗數量。 如省略,則預設為 10。
  • --pageToken TOKEN
    指定清單的起始偏移量。
remoteconfig:experiments:get \
EXPERIMENT_ID

擷取指定 Remote Config 實驗的詳細資料。

表格輸出內容包括實驗的資源名稱、顯示名稱、狀態 (PENDING、RUNNING、DONE 或 EXPIRED)、開始和結束時間、變化版本 (名稱和流量分配權重),以及設定的目標/指標。只有在傳遞 --json 時,原始 JSON 輸出內容才會包含實驗說明。

remoteconfig:experiments:delete \
EXPERIMENT_ID

刪除指定的 Remote Config 實驗。

CLI 會在採取行動前顯示確認提示,且不支援 -f 或 --force 旗標。在非互動模式下,確認預設值為「否」,指令會結束,不會刪除實驗。

remoteconfig:rollouts:list

列出有效 Firebase 專案中的所有 Remote Config 推出作業。

這個指令支援下列選用旗標:

  • --filter EXPRESSION
    指定篩選推出作業的運算式。
  • --pageSize NUMBER
    指定每頁要傳回的推出作業數量。 如省略,則預設為 10。
  • --pageToken TOKEN
    指定清單的起始偏移量。
remoteconfig:rollouts:get \
ROLLOUT_ID
擷取指定 Remote Config 推出作業的詳細資料。
remoteconfig:rollouts:delete \
ROLLOUT_ID

刪除指定的 Remote Config 推出作業。

CLI 會在採取行動前顯示確認提示,且不支援 -f 或 --force 旗標。(在非互動模式下,確認預設為「否」,指令會結束,不會刪除推出作業)。

SQL Connect 指令

如要進一步瞭解這些指令和用途,請參閱 SQL Connect CLI 參考指南。

指令 說明
dataconnect:services:list 列出有效 Firebase 專案中所有已部署的 SQL Connect 服務。
dataconnect:sql:diff

顯示本機 SQL Connect 結構定義與 Cloud SQL 資料庫結構定義之間的差異。

這個指令支援下列選用旗標:

  • --service SERVICE_ID
    指定 SQL Connect 服務 ID。 如果省略,則會使用 firebase.json 中設定的單一服務。如果設定了多項服務,除非您指定 --service,並視需要指定 --location,否則指令會失敗。
  • --location LOCATION
    指定 SQL Connect 服務的位置。只有在多個地點使用服務 ID 時,才需要提供。
dataconnect:sql:migrate

遷移 Cloud SQL 資料庫的結構定義,使其與本機 SQL Connect 結構定義相符。

這個指令支援下列選用旗標:

  • --service SERVICE_ID
    指定 SQL Connect 服務 ID。 如省略,則會使用 firebase.json 中設定的單一服務 (如設定多項服務,除非您指定 --service,並視需要指定 --location,否則指令會失敗)。
  • --location LOCATION
    指定 SQL Connect 服務的位置。只有在多個地點使用服務 ID 時,才需要提供。

在互動模式下,CLI 會在採取行動前顯示確認提示。在非互動模式下,系統會自動執行非破壞性遷移,但除非您傳遞 -f 或 --force (這也會略過互動模式中的確認提示),否則破壞性變更會中斷。

dataconnect:sql:grant \
--role SQL_ROLE \
--email EMAIL_ADDRESS

將指定的 SQL_ROLE (owner、writer 或 reader 之一) 授予使用者或服務帳戶的指定 EMAIL_ADDRESS。

這個指令支援下列選用旗標:

  • --service SERVICE_ID
    指定 SQL Connect 服務 ID。 如省略,則會使用 firebase.json 中設定的單一服務 (如設定多項服務,除非您指定 --service,並視需要指定 --location,否則指令會失敗)。
  • --location LOCATION
    指定 SQL Connect 服務的位置。只有在多個地點使用服務 ID 時,才需要提供。
dataconnect:sdk:generate

為 SQL Connect 連接器產生類型化 SDK。

這個指令支援下列選用旗標:

  • --service SERVICE_ID
    指定 SQL Connect 服務 ID。 如省略,則會為所有已設定的服務產生 SDK。
  • --location LOCATION
    指定 SQL Connect 服務的位置。只有在多個地點使用服務 ID 時,才需要提供。
  • --watch
    監控連接器 GQL 檔案的變更,並在更新時重新產生 SDK。