在rnfirebase上实现的远程配置有强制订阅吗?

时间:2018-03-31 12:04:42

标签: firebase firebase-remote-config react-native-firebase

最初我从该链接实现了完全远程配置示例:

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的内部实施如何?

1 个答案:

答案 0 :(得分:0)

使用0秒的缓存超时仅用于开发目的。这对您来说无法生效。

根据文档,您可以在60分钟的窗口中获取5次 - 在被客户端SDK限制之前。

这对你有用吗?