Flutter集成Firebase中的Remote Config

远程配置(Remote Config)的功能

  • 动态配置参数:Remote Config 允许您在不更新应用程序的情况下,实时更改应用程序的参数,如文本、颜色、布尔值等
  • 条件化参数:您可以基于用户的特定条件(例如用户地理位置、设备类型、应用版本等)来配置参数。这样可以实现针对不同用户群体的个性化配置
  • A/B 测试:Remote Config 可以用于进行 A/B 测试,通过配置不同的参数值来比较用户群体的反应,并确定哪个版本的参数对用户更有效
  • 实时生效:一旦您在 Firebase 控制台上更改了配置参数,这些更改就会立即生效,而无需等待用户下载新版本或重新启动应用程序
  • App根据远程配置来展示不同的文本以及界面

Flutter集成Remote Config步骤

一、Flutter集成Firebase框架

参考:00-Flutter集成Firebase框架

二、在Firebase网页端创建配置

访问https://console.firebase.google.com/u/0/,点击自己的项目后再点击左侧的发布与监控,然后再点击Remote Config即可看到远程配置界面

选择客户端,然后点击创建配置,在右侧的弹窗中填写参数名称、选择数据类型以及输入默认值后点击保存按钮,最后再点击发布更改按钮

三、在项目中添加Realtime Analysis

添加Analytics SDK到应用中

安装firebase_analytics插件

|---------------------------------------------------------------------------------------------------------------------------------|
| flutter pub add firebase_remote_config # ios的额外步骤 cd ios #如果下面指令报错,则删除Podfile.lock文件再执行下面指令 pod install --repo-update |

在Flutter中获取Remot Config的单例对象并设置最小提取间隔以实现频繁刷新

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| final remoteConfig = FirebaseRemoteConfig.instance; await remoteConfig.setConfigSettings(RemoteConfigSettings( ``fetchTimeout: ``const Duration(minutes: ``1``), ``minimumFetchInterval: ``const Duration(hours: ``1``), )); |

设置应用内默认参数值

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

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| await remoteConfig.setDefaults(``const { ``"test1"``: ``"我是默认的test1"``, ``"test2"``: ``3.14159``, ``"test3"``: ``true``, ``"test4"``: ``"Hello, world!"``, }); |

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

我们可以从 Remote Config 对象中获取参数值。如果您在后端中设置值,然后提取并激活它们,这些值便可供您的应用使用。否则,您将获得使用 setDefaults() 方法配置的应用内参数值。

如需获取这些值,请调用下列与应用所需数据类型对应的方法,并传入参数键作为调用的实参:

  • getBool()
  • getDouble()
  • getInt()
  • getString()
提取并激活值
  • 如需从 Remote Config 后端提取参数值,调用 fetch() 方法。系统将提取您在后端中设置的所有值,并将其存储在 Remote Config 对象中。

  • 如需将提取的参数值提供给您的应用,请调用 activate() 方法。

    如果您想在一次调用中提取并激活值,请使用 fetchAndActivate() 请求从 Remote Config 后端提取值,并使其可供应用使用:

|------------------------------------------|
| await remoteConfig.fetchAndActivate(); |

代码举例

|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| final remoteConfig = FirebaseRemoteConfig.instance; await remoteConfig ``.setConfigSettings(RemoteConfigSettings( ``fetchTimeout: ``const Duration(seconds: ``2``), ``minimumFetchInterval: ``const Duration(seconds: ``5``), )); await remoteConfig.setDefaults(``const { ``"test1"``: ``"我是默认的test1"``, ``"test2"``: ``"我是默认的test2"``, ``"test3"``: ``true``, ``"test4"``: ``"Hello, world!"``, }); await remoteConfig.fetchAndActivate(); var test1 = remoteConfig.getString(``"test1"``); var test2 = remoteConfig.getString(``"test2"``); print(``"test1 $test1"``); print(``"test2 $test2"``); |

我们看到test1的值是云端设置的内容,当我们前往Firebase后台修改test1的值,在应用程序中再次获取就会发现结果发生了改变

相关推荐
风华圆舞11 小时前
在 Flutter 鸿蒙项目里接入语音识别的完整思路
flutter·语音识别·harmonyos
风华圆舞13 小时前
鸿蒙 + Flutter 下如何让 HarmonyOS 能力真正服务于 AI 体验
人工智能·flutter·harmonyos
BreezeDove14 小时前
【Android】Flutter3.35项目启动超时问题
android·flutter
风华圆舞15 小时前
鸿蒙 MICROPHONE 权限在 Flutter 项目里怎么处理
flutter·华为·harmonyos
愚者Pro1 天前
切换本地 Flutter SDK 版本
flutter
TT_Close1 天前
别再复制旧 Flutter 工程了,真正拖慢你的不是业务代码
flutter·npm·visual studio code
风华圆舞1 天前
鸿蒙 + Flutter 下 AI 助手为什么要支持流式输出
人工智能·flutter·harmonyos
风华圆舞1 天前
鸿蒙 + Flutter 下 AI 页面的状态协同设计
人工智能·flutter·harmonyos
风华圆舞2 天前
鸿蒙语音播报功能 的 Flutter 侧封装思路
flutter·华为·harmonyos
brycegao3212 天前
Flutter 国际化富文本解决方案:基于双层占位符的轻量化图文混排方案
flutter·国际化·i18n·富文本·rtl·移动端工程架构