当前位置: 首页 > article >正文

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


http://www.kler.cn/a/298861.html

相关文章:

  • 用 gdbserver 调试 arm-linux 上的 AWTK 应用程序
  • 21.打印文件地址 C#例子
  • 定位方式:css
  • 汽车IVI中控开发入门及进阶(46):FFmpeg
  • 问题解决:发现Excel中的部分内容有问题。是否让我们尽量尝试恢复? 如果您信任此工作簿的源,请单击“是”。
  • Chrome 关闭自动添加https
  • Ai+若依(集成easyexcel实现excel表格增强)
  • Sky Takeaway
  • WEBSERVER完整体系
  • Java 创建对象方法的演变
  • ARM----时钟
  • Mybatis--SqlSessionFactory 、SqlSession
  • Java并发复习
  • 文案改写工具有哪些?5款智能改写工具迅速提升文案品质
  • Android11 MTK 安装apk时进行密码验证
  • 经验笔记:SQL调优
  • Java 入门指南:Java 并发编程 —— Copy-On-Write 写时复制技术
  • ElasticSearch的DSL查询④(DSL查询、RestClient的DSL查询)
  • Linux内核 -- 内存管理之 lru_cache_add_inactive_or_unevictable 函数
  • go切片的深入学习以及context库的使用
  • 一道迭代器失效练习题
  • SparkSQL FUNCTION相关操作
  • 基于Spring Boot的小区物业管理系统
  • 本地Gitblit使用
  • 使用Pandas高效读取和处理Excel数据
  • 静态内部类