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

问题描述 投票:0回答:1

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

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(在Android上)来更改特定请求的缓存过期。

他们也不建议将缓存更改为较小的值:

请注意,如果将此过期时间减少到非常小的值,则可能会开始达到客户端限制限制,这会阻止客户端每小时发送一次获取请求超过几次。

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

firebase firebase-remote-config react-native-firebase
1个回答
0
投票

使用0秒的缓存超时仅用于开发目的。这对你来说不适合你。

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

那对你有用吗?

© www.soinside.com 2019 - 2024. All rights reserved.