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 (節點套件管理員) 安裝 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 (節點套件管理員) 安裝 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 (節點套件管理員) 安裝 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

搭配使用 CLI 與持續整合系統

Firebase CLI 需要瀏覽器才能完成驗證,但 CLI 與 CI 和其他無頭環境完全相容。

  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 init 來設定更多 Firebase 產品。

  • 選取預設的 Firebase 專案。

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

    您也可以將多個 Firebase 專案 (例如測試專案和實際工作環境專案) 與同一個專案目錄建立關聯

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

  • 列出專案設定的 firebase.json 設定檔。

  • 用於儲存專案別名.firebaserc 檔案。

firebase.json 檔案

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

firebase.json 使用 Firebase CLI 部署資產時,需要使用 Firebase CLI 來部署資產,因為該檔案會指出專案目錄中有哪些檔案和設定會部署至 Firebase 專案。有些設定可以在專案目錄或 Firebase 控制台中定義,因此請務必解決任何潛在的部署衝突

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

如果您在初始化期間選取「Firebase 託管」、「Cloud Firestore」和「Cloud 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 安全性規則和資料庫索引來源檔案與各資料庫建立關聯。使用 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 專案指派別名的情況下執行 firebase use PROJECT_ID

在本機提供並測試 Firebase 專案

部署至實際工作環境之前,您可以先利用本機託管的網址查看及測試 Firebase 專案。如果只想測試特定功能,可以在 firebase serve 指令的旗標中使用半形逗號分隔清單。

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

  • 查看 Firebase 代管應用程式的靜態內容。
  • 使用 Cloud Functions 來產生 Firebase 託管的動態內容,以及您想使用實際執行 (已部署) HTTP 函式,在本機網址上模擬託管。
firebase serve --only hosting

使用 local HTTP 函式模擬專案

從專案目錄執行下列任一指令,使用 local 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 託管網站
  • 全新、更新或現有的 Cloud Functions for Firebase
  • Firebase 即時資料庫規則
  • Cloud Storage for Firebase 規則
  • Cloud Firestore 規則
  • Cloud Firestore 的索引

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

firebase deploy

您可以選擇為每個部署作業加入註解。這則註解會與專案的 Firebase 託管頁面顯示其他部署資訊一起顯示。例如:

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

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

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

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

安全性規則的部署作業衝突

針對 Firebase 即時資料庫、Cloud Storage for Firebase 和 Cloud Firestore,您可以在本機專案目錄或 Firebase 主控台中定義安全性規則。

另一個避免部署衝突的方法,就是使用部分部署,且只在 Firebase 控制台中定義規則。

部署配額

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

復原部署作業

您可以透過專案的 Firebase 託管頁面復原 Firebase 託管部署,方法是選取所需版本的「Rollback」動作。

目前無法復原 Firebase 即時資料庫、Cloud Storage for Firebase 或 Cloud Firestore 的安全性規則版本。

部署特定 Firebase 服務

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

firebase deploy --only hosting,storage

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

標記語法 部署的服務或功能
--only hosting Firebase 託管內容
--only database Firebase 即時資料庫規則
--only storage Cloud Storage for Firebase 規則
--only firestore 所有已設定資料庫的 Cloud Firestore 規則「和」索引
--only functions Cloud Functions for Firebase (可使用此標記的更多特定版本)

部署特定函式

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

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

另一種方法是將函式分組為 /functions/index.js 檔案中的匯出群組。將函式分組則能讓您使用單一指令部署多個函式。

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

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

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');

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 託管。

如要設定預先部署或後部署掛鉤,請在 firebase.json 設定檔中加入 bash 指令碼。您可以直接在 firebase.json 檔案中定義簡短指令碼,也可以參照專案目錄中的其他檔案。

舉例來說,下列指令碼是部署後工作的 firebase.json 運算式,會在部署成功至 Firebase 託管時傳送 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 指令碼) 包含待部署託管或 Cloud Functions 資源的目錄位置

管理多個即時資料庫執行個體

一個 Firebase 專案可以擁有多個 Firebase 即時資料庫執行個體。根據預設,CLI 指令與您的 default 資料庫執行個體互動。

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

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

指令參考資料

CLI 管理指令

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

專案管理指令

指令 說明
管理 Firebase 專案
projects:addfirebase 將 Firebase 資源新增至現有的 Google Cloud 專案。
projects:create 建立新的 Google Cloud 專案,然後將 Firebase 資源新增至新專案。
專案:清單 列出您有權存取的所有 Firebase 專案。
Firebase 應用程式管理 (iOS、Android、網頁)
apps:建立 在進行中的專案中建立新的 Firebase 應用程式。
apps:list 列出有效專案中已註冊的 Firebase 應用程式。
apps:sdkconfig 列印 Firebase 應用程式的 Google 服務設定。
setup:網站 已淘汰,請改用 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 託管網站,並與之互動。

指令 說明
部署 將專案目錄中的程式碼和資產部署至進行中的專案。如要 Firebase 託管,您必須具備 firebase.json 設定檔。
服務 使用 Firebase 託管設定啟動本機網路伺服器。如要 Firebase 託管,必須提供 firebase.json 設定檔。

應用程式發布指令

指令 說明
應用程式發布:發行 \
--應用程式 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 應用程式 ID 指定現有的 Firebase 網頁應用程式。
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
從專案中刪除後端。
apphosting:secrets:set \
KEY --project PROJECT_ID
--location REGION --data-file Data file
將密鑰內容儲存在 Secret Manager 中。視需要提供檔案路徑,可從中讀取密鑰資料。設為 _ 即可從標準輸入內容讀取密鑰資料。
apphosting:secrets:grantaccess \
KEY --project PROJECT_ID BACKEND_ID
--location REGION
將提供的密鑰存取權授予後端服務帳戶,以便在建構或執行期間由 App Hosting 存取。
apphosting:secrets:describe \
KEY --project PROJECT_ID
取得密鑰及其版本的中繼資料。
firebase apphosting:secrets:access \
KEY[@version]
--project PROJECT_ID
存取指定密鑰及其版本的密鑰值。預設為存取最新版本。

驗證 (使用者管理) 指令

指令 說明
「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
針對 Android 上的原生資料庫當機事件產生與 Crashlytics 相容的符號檔案,並上傳至 Firebase 伺服器。

擴充功能指令

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

擴充功能發布商指令

指令 說明
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:disable

停止為使用中的 Firebase 專案提供 Firebase 託管流量。

執行這個指令之後,專案的「託管」網址會顯示「找不到網站」訊息。

託管網站管理
firebase Hosting:sites:create \
SITE_ID

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

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

firebase Hosting:sites:delete \
SITE_ID

刪除指定的「託管」網站

CLI 會在刪除網站前顯示確認提示。

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

firebase Hosting:sites:get \
SITE_ID

擷取指定代管網站的相關資訊

firebase Hosting:sites:list

列出現有 Firebase 專案的所有託管網站

管理預覽頻道
firebase Hosting:channel:create \
CHANNEL_ID

使用指定的 CHANNEL_IDdefault 託管網站上建立新的預覽管道

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

firebase Hosting:channel:delete \
CHANNEL_ID

刪除指定預覽管道

您無法刪除網站的直播頻道。

firebase Hosting:channel:deploy \
CHANNEL_ID

將託管內容與設定部署至指定的預覽管道

如果預先發布版尚不存在,這個指令會在部署至管道前,先在 default 託管網站上建立管道。

Firebase 代管:channel:list 列出 default 託管網站中的所有頻道 (包括「直播」頻道)
firebase Hosting:channel:open \
CHANNEL_ID
開啟瀏覽器前往指定頻道的網址;如果無法在瀏覽器中開啟,則傳回網址
版本複製
firebase Hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

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

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

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

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

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

您可以在 Firebase 控制台的「託管」資訊主頁中找到 VERSION_ID

即時資料庫指令

請注意,您可以透過 Firebase 主控台、一般 firebase init 工作流程或特定的 firebase init database 流程,建立初始的預設即時資料庫執行個體。

執行個體建立完成後,您可以按照管理多個即時資料庫執行個體中的說明管理這些執行個體。

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

遠端設定指令

指令 說明
remoteconfig:versions:list \
--limit NUMBER_OF_VERSIONS
列出最近十個範本版本。指定 0 會傳回所有現有版本,或選擇傳遞 --limit 選項,限制傳回的版本數量。
remoteconfig:get \
--v, version_number VERSION_NUMBER
--o,輸出 FILENAME
依版本取得範本 (預設為最新版本),並將參數群組、參數、條件名稱和版本輸出至資料表。或者,您可以使用 -o, FILENAME 將輸出內容寫入指定檔案。
remoteconfig:rollback \
--v, version_number VERSION_NUMBER
--force
將遠端設定範本復原為指定的先前版本編號,或預設為前一個版本 (目前版本 -1)。除非已傳遞 --force,否則請先提示 Y/N,再繼續進行復原。