我有一个在服务器端呈现 HTML 的 Node.js Web 应用程序。
如何从 Firebase 远程配置服务器端访问用户的值,以便启用或禁用功能?
客户端这将是 getValue。
我假设我可以使用 REST API 来实现此目的,但记录的端点似乎只显示整体配置模板,而不是 getValue 客户端返回的内容。
我可以看到客户端 SDK 似乎正在向
发送 POSThttps://firebaseremoteconfig.googleapis.com/v1/projects/<projectid>/namespaces/firebase:fetch
...但据我所知,这是一个未记录的 API。
RemoteConfig 的工作原理如下:
基于此,我们可以简单地对 RC 进行 REST 调用,它就会响应 proto 中的数据。然后我们可以通过名称提取我们感兴趣的参数。然后将原始字符串数据转换为其特定类型。
您可以在此处找到有关如何在服务器上设置 Firebase 远程配置的说明:https://firebase.google.com/docs/remote-config/server
初始化RC:
import { initializeApp } from "firebase-admin/app";
import { getRemoteConfig } from "firebase-admin/remote-config";
// Initialize Firebase
const firebaseApp = initializeApp();
加载模板:
// Initialize server-side Remote Config
const rc = getRemoteConfig(firebaseApp);
const template = rc.initServerTemplate();
// Load Remote Config
await template.load();
可选择设置默认值:
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();
评估模板:
// Add template parameters to config
const config = template.evaluate();
获取值:
const is_ai_enabled = config.getBool('is_ai_enabled');