每次不在缓存过期后,Firebase RemoteConfig都会获取调用

时间:2018-08-22 19:26:56

标签: android firebase firebase-remote-config

也许我遗漏了一些东西,但是仅当缓存值早于缓存值时才不应该调用fetch()吗?

已从活动的onCreate调用此代码

firebaseRC = FirebaseRemoteConfig.getInstance()

firebaseRC.fetch(3600L). .addOnCompleteListener(this, new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                if (task.isSuccessful()) {
                    //THE TASK IS ALWAYS SUCCESSFUL
                    firebaseRC.activateFetched();
                }  
            }
        });

如果我连续几次在模拟器上启动应用程序,则每次提取均成功完成。

仅当我的数据早于3600秒时,fetch才能成功完成吗?因此,第二次启动该应用程序时,应在不使用onComplete

的情况下完成提取

文档说:

  

远程配置在第一次成功获取后在本地缓存值。   默认情况下,缓存会在12小时后过期,但是您可以更改   通过传递所需的缓存来进行特定获取的缓存过期   提取方法到期。如果缓存中的值较旧   超过所需的缓存过期时间,Remote Config将请求刷新   服务中的配置值。如果您的应用要求新的价值   多次使用访存,请求受到限制,您的应用   提供缓存的值。

并没有说明onComplete的触发方式...我应该每次使用activateFetched()都是相同的值吗?

1 个答案:

答案 0 :(得分:1)

fetch()的API文档说,结果将来自缓存或服务器。它并没有说它认为缓存结果是失败的。提取仅在根本无法给您任何结果的情况下才会失败,这意味着您的应用程序可能处于脱机状态,并且以前在缓存中没有成功提取的值。