Firebase 遠端設定現已支援使用 Firebase Admin Node.js SDK 12.1.0 以上版本。這項新功能有助於 讓您動態管理伺服器端的行為和設定 遠端設定應用程式包括無伺服器實作 例如 Cloud Functions。
與擷取用戶端專屬設定的 Firebase 用戶端 SDK 不同 「衍生」來源:遠端設定範本 (伺服器端) 遠端設定 SDK 下載完整的遠端設定範本 。這樣一來,您的伺服器就能利用每個 並使用自身的邏輯提供 延遲時間極短
透過伺服器端遠端設定,您可以:
- 為在當中執行或存取的應用程式定義設定參數 讓您使用遠端設定等用途 AI 模型參數、提示和其他整合項目 確保 API 金鑰安全無虞。
- 動態調整參數,以因應環境變化。 例如更新 LLM 參數和模型端點
- 從遠端更新伺服器呼叫的 API,藉此控管費用。
- 為可存取產品的用戶端即時產生自訂設定 伺服器
- 記錄哪些用戶端收到參數值,並用於 Cloud Functions 是授權驗證系統的一部分。
您可以透過 Cloud Run 部署伺服器端遠端設定 Cloud Functions,或自行託管的伺服器環境。
事前準備
按照「將 Firebase Admin SDK 加入 伺服器建立 Firebase 專案,設定服務帳戶,然後將 Firebase Admin Node.js SDK 加入 伺服器
步驟 1:初始化 Firebase Admin Node.js SDK 並授權 API 要求
在不含參數的情況下初始化 Admin SDK 時,SDK 會使用 Google
應用程式預設
憑證
並讀取 GOOGLE_APPLICATION_CREDENTIALS
環境中的選項
變數。舉例來說,如要初始化 SDK 並新增遠端設定,請按照下列步驟操作:
import { initializeApp } from "firebase-admin/app";
import { getRemoteConfig } from "firebase-admin/remote-config";
// Initialize Firebase
const firebaseApp = initializeApp();
步驟 2:找出伺服器應用程式的預設參數值
找出要在應用程式中動態更新的變數 遠端設定。接著,請決定哪些變數必須預設在 以及其預設值。這可以確保 因此即使與高可用性 VPN 連線 遠端設定後端伺服器已中斷。
舉例來說,您編寫的伺服器應用程式 設定預設模型名稱、提示前置碼 以及生成式 AI 設定,如下所示:
參數名稱 | 說明 | 類型 | 預設值 |
---|---|---|---|
model_name |
模型 API 名稱 | 字串 | gemini-1.5-pro |
preamble_prompt
|
提示前置作業 使用者的 項查詢 | 字串 | I'm a
developer who
wants to learn
about Firebase and
you are a helpful
assistant who
knows everything
there is to know
about Firebase! |
generation_config
|
要傳送的參數 對模型 | JSON | {"stopSequences":
["I hope this
helps"],
"temperature":
0.7,
"maxOutputTokens":
512, "topP": 0.1,
"topK": 20} |
步驟 3:設定伺服器應用程式
確定要使用的參數 遠端設定, 調整應用程式設定, 設定預設值, 擷取 伺服器專屬的遠端設定範本,並使用該範本的值。 下列步驟說明如何設定 Node.js 應用程式。
存取並載入範本。
// Initialize server-side Remote Config const rc = getRemoteConfig(firebaseApp); const template = rc.initServerTemplate(); // Load Remote Config await template.load();
如果在 Cloud Functions 中使用 Node.js, 可以使用非同步
getServerTemplate
來擷取並載入 只要一個步驟就能完成// Initialize server-side Remote Config const rc = getRemoteConfig(firebaseApp); const template = await rc.getServerTemplate();
確保即使在 遠端設定後端伺服器中斷,請新增 。方法是在
defaultConfig
initServerTemplate
或getServerTemplate
範本函式:const template = rc.initServerTemplate({ defaultConfig: { model_name: "gemini-pro", generation_config: '{"stopSequences": [], "temperature": 0.7, "maxOutputTokens": 512, "topP": 0.1, "topK": 20}', preamble_prompt: "I'm a developer who wants to learn about Firebase and you are a helpful assistant who knows everything there is to know about Firebase!" }, }); // Load Remote Config await template.load();
範本載入後,使用
template.evaluate()
匯入參數, 從範本指定值// Add template parameters to config const config = template.evaluate();
或者,如果您將 percentage 設為 條件 在您的遠端設定範本中,定義並提供
randomizationId
然後提供用來評估條件的template.evaluate()
函式。舉例來說,您可以設定 Firebase 安裝 ID 做為
randomizationId
或 User-ID,確保每位使用者都 位聯絡人已新增到正確的隨機群組中。 以下是一個基本範例,但您可能會設定 伺服器,為不同的用戶端產生不同的randomizationIds
可確保使用者從 根據成員在百分比條件決定的遠端設定 群組。如要進一步瞭解百分比條件,請參閱「隨機中的使用者 百分比。
// Set the randomizationId const randomizationId = "2ac93c28-c459-4760-963d-a3974ec26c04" // Add template parameters to `config`. Evaluates the // template and returns the parameter value assigned to // the group assigned to the {randomizationId}. const config = template.evaluate({ randomizationId });
接著,從設定常數中擷取所需的參數值。使用
getters
:以便將遠端設定中的值轉換為預期值 格式。支援的類型如下:- 布林值:
getBoolean
- 物件:
getValue
- 編號:
getNumber
- 字串:
getString
舉例來說 將 Vertex AI 導入 伺服器 如要變更模型和模型參數 為
model_name
和generationConfig
設定參數。以下是 以下舉例說明遠端設定值的存取方式:// Replace defaults with values from Remote Config. const generationConfig = JSON.parse( config.getString('generation_config')); const is_ai_enabled = config.getBool('is_ai_enabled'); const model = config.getString('model_name'); // Generates a prompt comprised of the Remote Config // parameter and prepends it to the user prompt const prompt = `${config.getString('preamble_prompt')} ${req.query.prompt}`;
- 布林值:
如果您的伺服器長時間執行 而不是無伺服器環境 請使用
setInterval
定期重新載入範本,確保 您會定期從 遠端設定伺服器。
步驟 4:在遠端設定中設定伺服器專屬的參數值
接著,建立伺服器遠端設定範本,並設定參數和 要在你的應用程式中使用多少價值
如何建立伺服器專屬的遠端設定範本:
- 開啟 Firebase 控制台遠端設定參數 頁面,然後在 在「用戶端/伺服器」選取器中選取「伺服器」。
- 使用與以下項目相同的名稱和資料類型定義遠端設定參數:
您在應用程式中定義的參數,並提供相關值。這些
值會覆寫您在 設定
defaultConfig
伺服器應用程式) 擷取及評估 並將這些值指派給變數 - 視需要設定百分比條件,永久套用值到 隨機樣本進一步瞭解百分比 條件,請參閱「隨機中的使用者 百分比。
- 參數新增完畢後,按一下「發布變更」。
- 查看變更,然後再次按一下「發布變更」。
步驟 5:使用 Cloud Functions 或 Cloud Run 進行部署
如果您的伺服器應用程式是輕量級和事件導向,建議您考慮 使用自動化工具 Cloud Functions。例如: 假設您有一款採用生成式 AI 技術的應用程式角色對話 API (例如 Google AI 或 Vertex AI)在此情況下,您可以透過 在應用程式隨選呼叫的函式中實作 LLM 提供邏輯。
以下示範使用第 2 代 Cloud Functions 的解決方案: 伺服器端遠端設定,請參閱 將伺服器端遠端設定與 Cloud Functions 搭配使用, Vertex AI
如要進一步瞭解如何透過 Cloud Functions 部署應用程式,請參閱取得 已著手編寫、測試及部署 函式。
試用在伺服器端遠端設定下呼叫的可呼叫函式,並 App Check: 使用遠端設定呼叫 Vertex AI Gemini API,並 App Check:
如果您的應用程式要長時間執行 (例如, 則可考慮使用 Cloud Run。部署 為伺服器應用程式導入 Cloud Run,請按照「快速入門導覽課程:部署 將 Node.js 服務遷移至 Cloud 執行
如要進一步瞭解 Cloud Run 和 請參閱 Cloud Functions 與 Cloud Run 的比較時機:使用時機 第一個是 other。