最初我从该链接实现了完全远程配置示例:
https://rnfirebase.io/docs/v3.3.x/config/example
firebase.config().fetch()
.then(() => {
return firebase.config().activateFetched();
})
.then((activated) => {
if (!activated) console.log('Fetched data not activated');
return firebase.config().getValue('hasExperimentalFeature');
})
.then((snapshot) => {
const hasExperimentalFeature = snapshot.val();
if(hasExperimentalFeature) {
enableSuperCoolFeature();
}
// continue booting app
})
.catch(console.error);
我的想法是不订阅远程配置。我只是想知道它在APP启动时是否有任何变化(componentWillMount)。
但我发现使用远程配置变量上方的代码不会在新的APP启动时更新。我搜索并发现了大约12小时缓存的信息:
远程配置在第一次成功获取后在本地缓存值 请求。默认情况下,缓存在12小时后过期,但您可以 通过传递更改特定请求的缓存过期 所需的缓存到期时间,以秒为单位 fetchWithExpirationDuration:completionHandler :(在iOS上)或fetch(on 机器人)。
他们也不建议将缓存更改为较小的值:
请注意,如果将此到期时间减少到非常小的值, 你可能会开始达到客户端限制限制 阻止您的客户端多次提取获取请求 每小时。
https://firebase.google.com/support/faq/#remote-config-requests
但是,因为我必须在APP启动时更新值,所以我决定不遵循此建议并进行测试。在我使用firebase.config().fetch(0)
(获取0以避免缓存)的测试中,APP显然没有订阅远程配置。 javascript方面没有听众。
那么,我可以继续使用firebase.config().fetch(0)
而不用担心吗?更新仅在代码运行时发生?
firebase.config().fetch() / snapshot
的内部实施如何?
答案 0 :(得分:0)
使用0秒的缓存超时仅用于开发目的。这对您来说无法生效。
根据文档,您可以在60分钟的窗口中获取5次 - 在被客户端SDK限制之前。
这对你有用吗?