Firebase Remote Config API 概览

Firebase 远程配置 API 可让您轻松更改应用的外观和行为,而无需用户下载应用更新。此概览文档将介绍以下内容:

  • 远程配置 API 的主要功能。
  • 远程配置库和 API 架构。

要详细了解远程配置功能,请参阅远程配置简介

远程配置 API 的主要功能

远程配置 API 可实现以下功能:

  • 您的应用控制何时采用新的参数值。 由于更改参数值会影响应用的行为和外观,API 设计实现了一个单例对象,用来在后台提取值,将其缓存,然后由您的应用在适当的时候激活这些值。
  • 应用内默认参数值。 您可以为应用中的所有远程配置参数设置应用内默认值。即使设备没有连接到服务器,您的应用也可以立即获得并使用这些默认值。您可以使用与获取应用内默认值相同的方法来获取所提取和激活的值。
  • 提取和应用值的操作非常高效。从远程配置服务器提取和激活值的操作非常高效,并且可以安全、重复地执行,因此,无需向应用添加侦听回调的逻辑,也无需确定是否可以安全地激活所提取的值。实际上,您可以相应地编写应用,使其在每次用户启动应用时(或以更高的频率)都发送一个请求来提取参数值和激活之前提取的参数值。如果没有已提取和激活的值可用,您的应用将使用应用内默认值。提取请求或 activateFetched 调用对性能的影响几乎可以忽略不计。

远程配置库

远程配置 API 架构以远程配置库为基础。远程配置库实现了一个单例类,在 iOS 中为 FIRRemoteConfig,在 Android 中为 FirebaseRemoteConfig。使用该远程配置对象可以进行以下操作:

  • 设定默认值。 无需在远程配置服务中管理(甚至创建)参数即可让应用按预期工作。您可以根据需要在应用内添加尽可能多的远程配置参数,以及创建应用内默认值。稍后,您可以通过在远程配置服务器上创建参数来替换应用的部分参数。
  • 提取、存储和管理参数值。 远程配置对象包含三种参数值的存储区:默认配置(存储应用内默认值)、活动配置(存储应用可通过 get 方法使用的值)和提取的配置(存储最近从远程配置服务器提取的值)。
  • 激活“提取的配置”,从而更新“活动配置”。 在“提取的配置”激活后,“提取的配置”中的参数值将复制到“活动配置”。这会将最近提取的值提供给您的应用来使用。

API 架构

下图显示了您的应用如何与远程配置交互。

下表提供了有关您的应用与远程配置库之间的交互的更多详情。

方法和属性 说明
获取远程配置对象的方法:

   iOS: remoteConfig
   Android: getInstance()

第 1 步:您的应用调用这些方法来创建远程配置对象(或将其从永久存储空间中恢复)。如果对象是新创建的,则“提取的配置”、“活动配置”和“默认配置”最初均为“空”,不包含任何参数值。

注意:如果使用 StrictMode 测试您的 Android 应用,应用创建时的初始 getInstance() 调用将从本地文件进行读取。为了避免 StrictMode 磁盘读取错误,不应再在 UI 线程上进行此初始调用。UI 线程上的所有后续 getInstance() 调用都是安全的,因为这些调用仅从内存读取。任何时候都不应在通过 Google Play 分发的应用中启用 StrictMode。

设置“默认配置”的方法:

   iOS: setDefaults:
   Android: setDefaults()
第 2 步:您的应用调用这些方法来设置“默认配置”中的值。如果您的应用试图从一个新的远程配置对象中获取某个值,但该值在“活动配置”中还不存在,则系统将改为提供“默认配置”中的值。
提取方法:

iOS:
   fetchWithCompletionHandler:
   fetchWithExpirationDuration:completionHandler:
   Android: fetch()
您的应用使用这些方法向远程配置服务器发起调用,并获得新的参数值,这些值将存储在“提取的配置”中。

注意:提取方法不会立即影响您的应用的行为或外观。
激活方法:

   iOS: activateFetched
   Android: activateFetched()
您的应用激活“提取的配置”,这会将“提取的配置”中存储的值复制到“活动配置”中。
Get<type> 方法:

   iOS: configValueForKey:
   Android: getLong()getString()
您的应用通过调用这些方法来获取“活动配置”中的参数值。
配置设置方法:

   iOS: initWithDeveloperModeEnabled:
   Android: setConfigSettings()
用于自定义设置。目前仅用于允许应用开发者比正式应用更快地刷新应用数据的设置。如需了解详情,请参阅 iOS 缓存Android 缓存
信息方法和属性:

   iOS: lastFetchStatusallKeysWithPrefix
   Android: getConfigSettings()getLastFetchStatus()getKeysByPrefix()
您的应用使用这些方法来获取有关远程配置对象的信息。您可以在应用开发期间使用这些方法进行调试。

要详细了解远程配置 API,请参阅:

要开始将远程配置与您的应用集成,请参阅在 iOS 上使用远程配置在 Android 上使用远程配置

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面