Firebase Studio 可讓您定義單一 .idx/dev.nix
設定檔,描述下列項目,根據專案的獨特需求調整工作區:
- 您需要能夠執行的系統工具 (例如從終端機),例如編譯器或其他二進位檔。
- 您需要安裝的擴充功能 (例如程式設計語言支援)。
- 應用程式預覽的顯示方式 (例如執行網路伺服器的指令)。
- 可供工作區中執行的本機伺服器使用的全域環境變數。
如要查看完整說明,請參閱 dev.nix
參考資料。
在專案中新增 .idx/mcp.json
(適用於 Gemini in Firebase) 或 .gemini/settings.json
(適用於 Gemini CLI) 檔案,即可連線至 Model Context Protocol (MCP) 伺服器,包括 Firebase MCP 伺服器。
Nix 和 Firebase Studio
Firebase Studio 使用 Nix 定義每個工作區的環境設定。具體來說, Firebase Studio 使用:
Nix 程式設計語言,用於描述工作區環境。Nix 是一種函數式程式設計語言。您可以在
dev.nix
檔案中定義的屬性和套件程式庫,遵循 Nix 屬性集語法。Nix 套件管理員,可管理工作區可用的系統工具。這與作業系統專用的套件管理員類似,例如 APT (
apt
和apt-get
)、Homebrew (brew
) 和dpkg
。
由於 Nix 環境可重現且具宣告性,在 Firebase Studio 的環境中,這表示您可以將 Nix 設定檔做為 Git 存放區的一部分共用,確保專案的所有參與者都擁有相同的環境設定。
基本示例
以下範例顯示啟用預覽的基本環境設定:
{ pkgs, ... }: {
# Which nixpkgs channel to use.
channel = "stable-23.11"; # or "unstable"
# Use https://search.nixos.org/packages to find packages
packages = [
pkgs.nodejs_20
];
# Sets environment variables in the workspace
env = {
SOME_ENV_VAR = "hello";
};
# Search for the extensions you want on https://open-vsx.org/ and use "publisher.id"
idx.extensions = [
"angular.ng-template"
];
# Enable previews and customize configuration
idx.previews = {
enable = true;
previews = {
web = {
command = [
"npm"
"run"
"start"
"--"
"--port"
"$PORT"
"--host"
"0.0.0.0"
"--disable-host-check"
];
manager = "web";
# Optionally, specify a directory that contains your web app
# cwd = "app/client";
};
};
};
}
新增系統工具
如要在工作區中新增編譯器或雲端服務的 CLI 程式等系統工具,請在 Nix 套件登錄檔中找出專屬套件 ID,然後在 dev.nix
檔案的 packages
物件中新增該 ID,並加上 `pkgs.` 前置字元:
{ pkgs, ... }: {
# Which nixpkgs channel to use.
channel = "stable-23.11"; # or "unstable"
# Use https://search.nixos.org/packages to find packages
packages = [
pkgs.nodejs_20
];
...
}
這與您通常使用作業系統專屬套件管理員 (例如 APT (apt
和 apt-get
)、Homebrew (brew
) 和 dpkg
) 安裝系統套件的方式不同。明確說明需要哪些系統套件,有助於輕鬆分享及重現 Firebase Studio 工作區。
使用本機節點二進位檔
與本機電腦一樣,您可以在「終端機」面板中,透過 npx
指令叫用與本機安裝節點套件相關的二進位檔 (例如 package.json
中定義的套件)。
為提供更多便利性,如果您位於含有 node_modules
資料夾的目錄 (例如網頁專案的根目錄),可以直接叫用本機安裝的二進位檔,不必加上 npx
前置字串。
新增 gcloud
元件
所有 Firebase Studio 工作區都能使用 Google Cloud 的 gcloud
CLI 預設設定。
如需其他元件,可以將其新增至 dev.nix
檔案:
{ pkgs }: {
packages = [
...
(pkgs.google-cloud-sdk.withExtraComponents [
pkgs.google-cloud-sdk.components.cloud-datastore-emulator
])
...
];
}
新增 IDE 擴充功能
您可以使用 Firebase Studio 中的 OpenVSX 擴充功能登錄檔,透過下列兩種方式安裝擴充功能:
在 Firebase Studio 中使用「擴充功能」面板,探索及安裝擴充功能。這個方法最適合使用者專屬的擴充功能,例如:
- 自訂色彩主題
- 編輯器模擬,例如 VSCodeVim
在
dev.nix
檔案中新增擴充功能。分享工作區設定時,系統會自動安裝這些擴充功能。這種方法最適合專案專屬擴充功能,例如:- 程式設計語言擴充功能,包括特定語言的偵錯工具
- 專案中使用的雲端服務官方擴充功能
- 程式碼格式設定工具
如果是後者,您可以在 dev.nix
檔案中加入 IDE 擴充功能,方法是找出完整擴充功能 ID (格式為 <publisher>.<id>
),然後將其加入 idx.extensions
物件,如下所示:
{ pkgs, ... }: {
...
# Search for the extensions you want on https://open-vsx.org/ and use the format
# "<publisher>.<id>"
idx.extensions = [
"angular.ng-template"
];
...
}
新增常見服務
Firebase Studio 也簡化了開發期間可能需要的常見服務設定和配置,包括:
- 容器
- Docker (
services.docker.*
)
- Docker (
- 訊息
- Pub/Sub 模擬器 (
services.pubsub.*
)
- Pub/Sub 模擬器 (
- 資料庫
- MySQL (
services.mysql.*
) - Postgres (
services.postgres.*
) - Redis (
services.redis.*
) - Spanner (
services.spanner.*
)
- MySQL (
如要瞭解如何在工作區中啟用這些服務,請參閱services.*
dev.nix
參考資料的相關部分。
自訂預覽畫面
如要進一步瞭解如何自訂應用程式預覽畫面,請參閱「預覽應用程式」。
設定工作區圖示
如要為工作區選擇自訂圖示,請在與 dev.nix
檔案相同的層級,將名為 icon.png
的 PNG 檔案放在 .idx
目錄中。Firebase Studio 隨後會使用這個圖示,在資訊主頁中代表您的工作區。
由於這個檔案可以簽入來源控管 (例如 Git),因此當使用 Firebase Studio 時,這項做法有助於讓專案的所有協作者看到相同的專案圖示。由於檔案在不同 Git 分支中可能有所差異,因此您可以使用這個圖示,以視覺化方式區分 Beta 版和正式版應用程式工作區,以及用於其他用途。
將自訂項目轉換為範本
如要將環境設定轉換為「入門環境」,供任何人用來建構新專案,請參閱「建立自訂範本」文件。
探索所有自訂選項
如需環境設定結構定義的詳細說明,請參閱 dev.nix
參考資料。
下載檔案
如要以 ZIP 檔案格式下載檔案,請按照下列步驟操作:
- 在「檔案總管」窗格中,對任何目錄按一下滑鼠右鍵,然後選取「壓縮並下載」。
如要下載專案目錄中的所有內容,請按照下列步驟操作:
依序選取「File」>「Open Folder」。
接受預設的
/home/user
目錄。檔案載入後,在工作目錄上按一下滑鼠右鍵,然後選取「壓縮並下載」。如果使用 App Prototyping agent,工作目錄會是
studio
。如果使用範本或上傳的專案,這就是專案名稱。系統提示您重建環境時,請按一下「取消」。
下載完成後,請從「檔案」選單重新開啟工作目錄,返回工作區。
使用 MCP 伺服器
MCP 伺服器會提供更多工具和資料來源供 Gemini 使用。舉例來說,您可以新增 Firebase MCP 伺服器,在建構或偵錯應用程式時,使用自然語言探索資料。Cloud Firestore
事前準備
- 如果 MCP 伺服器需要,請確認您已安裝可運作的 Node.js 和 npm。
選擇相容的 MCP 伺服器
Firebase Studio 支援 MCP 伺服器,但並非所有 MCP 伺服器都相容。選擇要新增至 Firebase Studio 工作區的 MCP 伺服器時,請注意下列事項:
- 支援:
- 標準輸入/輸出 (stdio) 或伺服器傳送事件 (SSE)/可串流 HTTP 傳輸伺服器,不需要特殊形式的驗證
- MCP 伺服器提供的工具
- 目前不支援:
- 需要圖形使用者介面或桌面工作階段的伺服器
- MCP 伺服器提供的提示、樣本或其他資源
新增 MCP 伺服器
在「Explorer」
(Ctrl+Shift+E)
中,編輯或建立 MCP 設定檔。Gemini 版 Firebase Chat 使用
.idx/mcp.json
。Gemini CLI 使用
.gemini/settings.json
。
如果檔案尚不存在,請在上層目錄上按一下滑鼠右鍵,然後選取「New file」,即可建立檔案。請建立或編輯這兩個檔案,以便在 Firebase 和 Gemini CLI 中使用 Gemini 的 MCP 伺服器。
在檔案內容中新增伺服器設定。舉例來說,如要新增 Firebase MCP 伺服器,請輸入:
{ "mcpServers": { "firebase": { "command": "npx", "args": [ "-y", "firebase-tools@latest", "experimental:mcp" ] } } }
這個設定檔會指示 Gemini 要使用的 MCP 伺服器。在本範例中,我們新增了一個名為
firebase
的伺服器,該伺服器會使用npx
指令安裝及執行firebase-tools@latest
。其他 MCP 伺服器需要不同的設定,但一般格式相同。在終端機 (
Shift+Ctrl+C
) 中執行任何必要指令,完成安裝作業。舉例來說,如要使用 Firebase MCP 伺服器,請輸入下列指令登入帳戶:firebase login --no-localhost
按照終端機中的指示授權工作階段。部分工具需要連結 Firebase 專案。您可以使用 Firebase MCP 伺服器建立專案,也可以執行下列指令來初始化 Firebase 專案:
firebase init
這會在根目錄中建立
firebase.json
檔案。重建工作區以完成設定:
開啟指令區塊面板 (
Shift+Ctrl+P
)。輸入「Firebase Studio: Rebuild Environment」。
使用 MCP 工具
安裝要使用的 MCP 伺服器後,即可在下列位置使用該伺服器提供的工具或資料:
- Gemini CLI
- 使用「專員」模式和「專員 (自動執行)」模式時,Firebase 聊天室中的 Gemini
- App Prototyping agent
舉例來說,如果您新增 Firebase MCP 伺服器,可以要求 Gemini擷取目前專案的 SDK 設定、 擷取儲存在 Cloud Firestore 和 Realtime Database 中的資料、協助您設定 Firebase 服務,以及執行更多操作。
排解 MCP 伺服器問題
如果 MCP 伺服器無法正常運作,請開啟Gemini記錄檔,檢查是否有錯誤:
在「輸出」圖示 (
Shift+Ctrl+U
) 中,按一下下拉式選單,然後選取「Gemini」。檢查開頭為
[MCPManager]
標記的訊息。這些記錄檔包含已設定的 MCP 伺服器相關資訊,以及任何錯誤訊息。請使用這項資訊排解設定問題。MCP 伺服器成功連線後,您會看到伺服器新增的工具清單。
如果 MCP 伺服器無法安裝或連線,請嘗試重建工作區:
開啟指令區塊面板 (
Shift+Ctrl+P
)。輸入「Firebase Studio: Rebuild Environment」。
等待工作區重建完成,然後再次嘗試使用所選 MCP 伺服器。
如果 MCP 伺服器已連線,但 Gemini 未使用伺服器提供的工具:
如果 Gemini 無須使用 MCP 工具即可完成工作,可能會嘗試其他方法。如要使用特定工具,請在提示中指定工具名稱。舉例來說,你可以說「使用
firebase_get_sdk_config
取得目前專案的 SDK 設定」。
後續步驟
- 與 Firebase 和 Google 服務整合。
- 建立自訂範本。
- 新增「在 Firebase Studio 開啟」按鈕。
- 進一步瞭解Firebase Studio工作區。
- 進一步瞭解 Firebase MCP 伺服器。
- 完成 Firebase Studio MCP 伺服器程式碼研究室。