Android Firebase Remote Config fetch()方法:控制台更新后本地值是否自动同步?
Firebase Remote Config 缓存更新疑问解答
嘿,这个问题我之前做项目的时候也纠结过,给你把关键点捋清楚:
- 控制台更新配置后,设备本地缓存不会自动更新,必须手动调用
fetch()(或者直接用fetchAndActivate())才能拉取到新的配置值。
为什么会这样?因为Remote Config的本地缓存是严格遵循你设置的有效期规则的——默认12小时,或是你调用fetch()时传入的自定义过期时长。在缓存未过期的情况下,哪怕你在控制台修改了配置,设备调用fetch()也只会返回本地缓存里的旧值,不会主动去请求云端的新配置。
那如果需要及时获取控制台的更新,给你两个实用方案:
- 主动触发更新:在合适的时机(比如App启动、用户进入核心页面)调用
fetch(),如果需要新配置立即生效,可以接着调用activate();或者直接用fetchAndActivate()一步完成拉取和激活。要是想强制忽略当前缓存直接拉取最新值,可以调用fetch(0),但注意这个操作别在生产环境频繁使用,Firebase有限流机制,容易触发请求被拒绝的情况。 - 结合FCM推送触发:如果你的场景对配置更新的实时性要求很高,可以给设备发送FCM通知,当设备收到通知后,在后台触发
fetchAndActivate()来更新配置,这样就能做到控制台改完,设备很快就能拿到新值。
总结一下:Remote Config不会自动同步控制台的更新,必须主动调用fetch()系列方法才能获取新配置,合理搭配缓存策略和FCM能平衡更新及时性与请求效率。
内容的提问来源于stack exchange,提问作者Mateen Chaudhry
相关产品推荐
相关产品推荐

