Firebase Remote Config 現在支援使用 Firebase Admin Node.js SDK 12.1.0 以上版本。這項新功能有助於 讓您動態管理伺服器端的行為和設定 使用 Remote Config 的應用程式。包括無伺服器實作 例如 Cloud Functions。
與擷取用戶端專屬設定的 Firebase 用戶端 SDK 不同 衍生自從 Remote Config 範本 (伺服器端) Remote Config SDK 下載完整 Remote Config 範本 。這樣一來,您的伺服器就能利用每個 並使用自身的邏輯提供 延遲時間極短
您可以透過伺服器端 Remote Config:
- 為在當中執行或存取的應用程式定義設定參數 讓您使用遠端設定等用途 AI 模型參數、提示和其他整合項目 確保 API 金鑰安全無虞。
- 動態調整參數,以因應環境變化。 例如更新 LLM 參數和模型端點
- 從遠端更新伺服器呼叫的 API,藉此控管費用。
- 為可存取產品的用戶端即時產生自訂設定 伺服器
- 記錄哪些用戶端收到參數值,並用於 Cloud Functions。
您可以在 Cloud Run 上部署伺服器端 Remote Config 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 並新增 Remote Config:
import { initializeApp } from "firebase-admin/app";
import { getRemoteConfig } from "firebase-admin/remote-config";
// Initialize Firebase
const firebaseApp = initializeApp();
步驟 2:找出伺服器應用程式的預設參數值
找出要在應用程式中動態更新的變數 Remote Config。接著,請決定哪些變數必須預設在 以及其預設值。這可以確保 因此即使與高可用性 VPN 連線 Remote Config 後端伺服器已中斷。
舉例來說,您編寫的伺服器應用程式 設定預設模型名稱、提示前置碼 以及生成式 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:設定伺服器應用程式
確定要使用的參數 Remote Config,請將應用程式設為設定預設值,擷取 伺服器專用的 Remote Config 範本,並使用其值。 下列步驟說明如何設定 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();
確保即使在 Remote Config 後端伺服器中斷,請新增以下項目的預設值: 。方法是在原始碼中加入
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 設為 條件 在 Remote Config 範本中定義並提供
randomizationId
然後提供用來評估條件的template.evaluate()
函式。舉例來說,您可以設定 Firebase 安裝 ID 做為
randomizationId
或 User-ID,確保每位使用者都 位聯絡人已新增到正確的隨機群組中。 以下是一個基本範例,但您可能會設定 伺服器,為不同的用戶端產生不同的randomizationIds
可確保使用者從 Remote Config (依其百分比條件) 群組。如要進一步瞭解百分比條件,請參閱「隨機中的使用者 百分比。
// 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
:從 Remote Config 將值轉換為預期值 格式。支援的類型如下:- 布林值:
getBoolean
- 物件:
getValue
- 編號:
getNumber
- 字串:
getString
舉例來說 將 Vertex AI 導入 伺服器 如要變更模型和模型參數 為
model_name
和generationConfig
設定參數。以下是 以下舉例說明如何存取 Remote Config 的值:// 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
定期重新載入範本,確保 您會定期從 Remote Config 伺服器。
步驟 4:在 Remote Config 中設定伺服器專屬的參數值
接下來,請建立伺服器 Remote Config 範本,並設定參數並 要在你的應用程式中使用多少價值
如何建立伺服器專用的 Remote Config 範本:
- 開啟 Firebase 控制台 Remote Config 參數 頁面,並從 在「用戶端/伺服器」選取器中,選取「伺服器」。
- 定義 Remote Config 參數,並採用與以下項目相同的名稱和資料類型:
您在應用程式中定義的參數,並提供相關值。這些
值會覆寫您在 設定
defaultConfig
伺服器應用程式) 擷取及評估 並將這些值指派給變數 - 視需要設定百分比條件,永久套用值到 隨機樣本進一步瞭解百分比 條件,請參閱「隨機中的使用者 百分比。
- 參數新增完畢後,按一下「發布變更」。
- 查看變更,然後再次按一下「發布變更」。
步驟 5:使用 Cloud Functions 或 Cloud Run 部署
如果您的伺服器應用程式是輕量級和事件導向,建議您考慮 使用自動化工具 Cloud Functions。例如: 假設您有一款採用生成式 AI 技術的應用程式角色對話 API (例如 Google AI 或 Vertex AI)。在此情況下,您可以透過 在應用程式隨選呼叫的函式中實作 LLM 提供邏輯。
如何使用第 2 代 Cloud Functions 的解決方案: 伺服器端 Remote Config,請參閱 將伺服器端 Remote Config 與 Cloud Functions 和 Vertex AI。
如要進一步瞭解如何透過 Cloud Functions 部署應用程式,請參閱取得 已著手編寫、測試及部署 函式。
試用在伺服器端 Remote Config 的可呼叫函式範例,並 App Check 等於 使用 Remote Config 呼叫 Vertex AI Gemini API,並 App Check。
如果您的應用程式要長時間執行 (例如, 則可考慮使用 Cloud Run。部署 為伺服器應用程式導入 Cloud Run,請按照「快速入門導覽課程:部署 將 Node.js 服務遷移至 Cloud 執行
如要進一步瞭解 Cloud Run 和 Cloud Functions,請參閱 Cloud Functions 與 Cloud Run 的使用時機: 第一個是 other。