Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Firebase Remote Config 使用入门

您可以使用 Firebase Remote Config 来定义应用中的参数并在云端更新它们的值。这样,您无需更新应用即可修改应用的外观和行为。本指南介绍了入门步骤并提供了一些示例代码,所有这些代码都可以从 firebase/quickstart-js GitHub 代码库中克隆或下载。

将 Remote Config 添加到您的应用

  1. 安装 Firebase SDK for Web。

  2. 创建单例 Remote Config 对象:

    Web 版本 9

    import { getRemoteConfig } from "firebase/remote-config";
    
    const remoteConfig = getRemoteConfig();

    Web 版本 8

    const remoteConfig = firebase.remoteConfig();

    此对象用于存储应用内默认参数值,从 Remote Config 后端提取更新后的参数值,以及控制提取的值何时可供应用使用。

  3. 设置最小提取间隔:

    Web 版本 9

    remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

    Web 版本 8

    remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

    在开发期间,建议设置相对较低的最小提取间隔。如需了解详情,请参阅限制

设置应用内默认参数值

您可以在 Remote Config 对象中设置应用内默认参数值,以便应用在连接到 Remote Config 后端之前能够按预期运行,并且在后端中尚未设置任何值时可以使用默认值。

Web 版本 9

remoteConfig.defaultConfig = {
  "welcome_message": "Welcome"
};

Web 版本 8

remoteConfig.defaultConfig = {
  "welcome_message": "Welcome"
};

获取要在应用中使用的参数值

现在,您可以从 Remote Config 对象中获取参数值。如果您稍后在后端中设置值,然后提取并激活它们,这些值便可供您的应用使用。如需获取这些值,请调用 getValue() 方法,并传入参数键作为调用的实参。

Web 版本 9

import { getValue } from "firebase/remote-config";

const val = getValue(remoteConfig, "welcome_messsage");

Web 版本 8

const val = remoteConfig.getValue("welcome_messsage");

设置参数值

使用 Firebase 控制台或 Remote Config 后端 API,您可以创建新的服务器端默认值,这些值会根据您希望的条件逻辑或用户定位条件来替换应用内的值。本部分介绍了在 Firebase 控制台中创建这些值的步骤。

  1. Firebase 控制台中,打开您的项目。
  2. 从菜单中选择 Remote Config 以查看 Remote Config 信息中心。
  3. 使用您在应用中指定的参数名称来定义参数。对于每个参数,您可以设置默认值(最终将替换应用内默认值),也可以设置条件值。如需了解详情,请参阅 Remote Config 参数和条件

提取并激活值

  1. 如需从 Remote Config 后端提取参数值,请调用 fetchConfig() 方法。系统将提取您在后端中设置的所有值,并缓存在 Remote Config 对象中。
  2. 如需将提取的参数值提供给您的应用,请调用 activate() 方法。

如果您想在一次调用中提取并激活值,请使用 fetchAndActivate(),如下例所示:

Web 版本 9

import { fetchAndActivate } from "firebase/remote-config";

fetchAndActivate(remoteConfig)
  .then(() => {
    // ...
  })
  .catch((err) => {
    // ...
  });

Web 版本 8

remoteConfig.fetchAndActivate()
  .then(() => {
    // ...
  })
  .catch((err) => {
    // ...
  });

由于这些更新后的参数值会影响应用的行为和外观,因此您应该谨慎选择激活已提取的值的时机,以确保为用户提供流畅的体验,例如在用户下次打开您的应用时激活。如需更多信息和示例,请参阅 Remote Config 加载策略

限制

如果应用在短时间内提取次数太多,提取调用可能会受到限制。在这种情况下,SDK 会抛出 FETCH_THROTTLE 错误。建议您捕获此错误,并在指数退避模式下重试,在两次后续提取请求之间等待更长时间间隔。

在应用开发期间,您可能需要非常频繁地(每小时多次)刷新缓存,从而可以在开发和测试应用的同时快速迭代。为方便有众多开发者的项目快速迭代,您可以在应用中临时添加一个具有较短的最小提取间隔 (Settings.minimumFetchIntervalMillis) 的属性。

Remote Config 默认和建议的生产提取间隔为 12 小时,这意味着无论实际上调用了多少次提取方法,在 12 小时的时间段内最多从后端提取一次配置。具体而言,系统按以下顺序确定最小提取间隔:

  1. Settings.minimumFetchIntervalMillis 中的参数。
  2. 默认值 12 小时。

后续步骤

浏览 Remote Config 使用场景并查看一些关键的概念和高级策略文档(如果您尚未这样做),包括: