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的值,在应用程序中再次获取就会发现结果发生了改变

相关推荐
ZH15455891313 小时前
Flutter for OpenHarmony Python学习助手实战:API接口开发的实现
python·学习·flutter
一只大侠的侠3 小时前
Flutter开源鸿蒙跨平台训练营 Day11从零开发商品详情页面
flutter·开源·harmonyos
一只大侠的侠4 小时前
React Native开源鸿蒙跨平台训练营 Day18自定义useForm表单管理实战实现
flutter·开源·harmonyos
一只大侠的侠4 小时前
React Native开源鸿蒙跨平台训练营 Day20自定义 useValidator 实现高性能表单验证
flutter·开源·harmonyos
renke33644 小时前
Flutter for OpenHarmony:节奏方块 - 基于时间同步与连击机制的实时音乐游戏系统设计
flutter·游戏
晚霞的不甘4 小时前
Flutter for OpenHarmony 可视化教学:A* 寻路算法的交互式演示
人工智能·算法·flutter·架构·开源·音视频
千逐684 小时前
《Flutter for OpenHarmony:星轨天气的粒子化气象宇宙可视化系统》
flutter
晚霞的不甘5 小时前
Flutter for OpenHarmony 实现计算几何:Graham Scan 凸包算法的可视化演示
人工智能·算法·flutter·架构·开源·音视频
千逐686 小时前
气象流体场:基于 Flutter for OpenHarmony 的实时天气流体动力学可视化系统
flutter
一只大侠的侠6 小时前
Flutter开源鸿蒙跨平台训练营 Day12从零开发通用型登录页面
flutter·开源·harmonyos