获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

开始使用 Firebase 远程配置

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。


您可以使用 Firebase Remote Config 在您的应用程序中定义参数并在云端更新它们的值,从而允许您修改应用程序的外观和行为而无需分发应用程序更新。本指南将引导您完成入门步骤并提供一些示例代码,所有这些代码都可以从firebase/quickstart-js GitHub 存储库中克隆或下载。

第一步:添加并初始化Remote Config SDK

  1. 如果您还没有安装 Firebase JS SDK 并初始化 Firebase

  2. 添加 Remote Config JS SDK 并初始化 Remote Config:

Web version 9

import { initializeApp } from "firebase/app";
import { getRemoteConfig } from "firebase/remote-config";

// TODO: Replace the following with your app's Firebase project configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize Firebase
const app = initializeApp(firebaseConfig);


// Initialize Remote Config and get a reference to the service
const remoteConfig = getRemoteConfig(app);

Web version 8

import firebase from "firebase/app";
import "firebase/remote-config";

// TODO: Replace the following with your app's Firebase project configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize Firebase
firebase.initializeApp(firebaseConfig);


// Initialize Remote Config and get a reference to the service
const remoteConfig = firebase.remoteConfig();

此对象用于存储应用内默认参数值、从远程配置后端获取更新的参数值,以及控制何时将获取的值提供给您的应用。

第 2 步:设置最小提取间隔

在开发过程中,建议设置一个相对较低的最小获取间隔。有关详细信息,请参阅节流

Web version 9

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

Web version 8

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

第 3 步:设置应用内默认参数值

您可以在 Remote Config 对象中设置应用内默认参数值,以便您的应用在连接到 Remote Config 后端之前按预期运行,并且如果没有在后端设置默认值,则默认值可用。

Web version 9

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

Web version 8

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

如果您已经配置了远程配置后端参数值,则可以下载包含所有默认值的生成的 JSON 文件并将其包含在您的应用程序包中:

休息

curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=JSON -o remote_config_defaults.json

Firebase 控制台

  1. Parameters选项卡中,打开 Menu ,然后选择Download default values
  2. 出现提示时,启用.json for web ,然后单击Download file

以下示例展示了您可以在应用中导入和设置默认值的两种不同方式。第一个示例使用fetch ,它将向您的应用程序包中包含的默认文件发出 HTTP 请求:


  const rcDefaultsFile = await fetch('remote_config_defaults.json');
  const rcDefaultsJson = await rcDefaultsFile.json();
  remoteConfig.defaultConfig = rcDefaultsJson;
  

下一个示例使用require ,它在构建时将值编译到您的应用程序中:

  let rcDefaults = require('./remote_config_defaults.json');
  remoteConfig.defaultConfig = rcDefaults;

第 4 步:获取要在您的应用中使用的参数值

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

Web version 9

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

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

Web version 8

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

第 5 步:设置参数值

使用 Firebase 控制台或远程配置后端 API ,您可以创建新的服务器端默认值,根据您所需的条件逻辑或用户定位覆盖应用内值。本部分将引导您完成 Firebase 控制台步骤以创建这些值。

  1. Firebase 控制台中,打开您的项目。
  2. 从菜单中选择远程配置以查看远程配置仪表板。
  3. 使用与您在应用程序中定义的参数相同的名称定义参数。对于每个参数,您可以设置一个默认值(最终将覆盖应用内的默认值),您还可以设置条件值。要了解更多信息,请参阅远程配置参数和条件

第 6 步:获取并激活值

  1. 要从远程配置后端获取参数值,请调用fetchConfig()方法。您在后端设置的任何值都将被提取并缓存在远程配置对象中。
  2. 要使获取的参数值对您的应用程序可用,请调用activate()方法。

对于希望在一次调用中获取和激活值的情况,请使用fetchAndActivate() ,如本例所示:

Web version 9

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

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

Web version 8

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

由于这些更新的参数值会影响应用的行为和外观,因此您应该在确保用户流畅体验的时间激活获取的值,例如用户下次打开您的应用时。有关更多信息和示例,请参阅远程配置加载策略

节流

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

在应用程序开发期间,您可能希望非常频繁地刷新缓存(每小时多次),以便在开发和测试应用程序时快速迭代。为了适应拥有众多开发人员的项目的快速迭代,您可以在您的应用中临时添加一个具有较低最小获取间隔 ( Settings.minimumFetchIntervalMillis ) 的属性。

远程配置的默认和推荐生产获取间隔为 12 小时,这意味着在 12 小时的窗口中不会从后端多次获取配置,无论实际进行了多少次获取调用。具体来说,最小抓取间隔按以下顺序确定:

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

下一步

如果您还没有,请探索远程配置用例,并查看一些关键概念和高级策略文档,包括: