也许我遗漏了一些东西,但是仅当缓存值早于缓存值时才不应该调用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()
都是相同的值吗?
答案 0 :(得分:1)
fetch()的API文档说,结果将来自缓存或服务器。它并没有说它认为缓存结果是失败的。提取仅在根本无法给您任何结果的情况下才会失败,这意味着您的应用程序可能处于脱机状态,并且以前在缓存中没有成功提取的值。