Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Firebase RemoteConfig每次非在缓存过期后调用获取_Android_Firebase_Firebase Remote Config - Fatal编程技术网

Android Firebase RemoteConfig每次非在缓存过期后调用获取

Android Firebase RemoteConfig每次非在缓存过期后调用获取,android,firebase,firebase-remote-config,Android,Firebase,Firebase Remote Config,也许我遗漏了什么,但是不应该只在缓存值比缓存值旧的情况下调用fetch() 从活动的onCreate调用此代码 firebaseRC = FirebaseRemoteConfig.getInstance() firebaseRC.fetch(3600L). .addOnCompleteListener(this, new OnCompleteListener<Void>() { @Override public void onComp

也许我遗漏了什么,但是不应该只在缓存值比缓存值旧的情况下调用
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();
                }  
            }
        });
firebaseRC=firebasemoteconfig.getInstance()
firebaseRC.fetch(3600L)。addOnCompleteListener(这个,新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
//这项任务总是成功的
firebaseRC.activateFetched();
}  
}
});
如果我连续几次在模拟器上启动应用程序,每次抓取都会成功完成

只有当我的数据超过3600秒时,
fetch
才应该成功完成吗?因此,第二次启动应用程序时,fetch应该在没有onComplete的情况下完成

文件说:

第一次成功获取后,远程配置会在本地缓存值。 默认情况下,缓存在12小时后过期,但您可以更改 通过传递所需缓存,特定提取的缓存过期 fetch方法的过期时间。如果缓存中的值较旧 如果超过所需的缓存过期时间,远程配置将请求刷新 从服务中配置值。如果你的应用程序请求新值 多次使用fetch,请求将被限制,应用程序将被禁用 提供了缓存值


它没有说明
onComplete
将如何触发。。。我是否应该每次都使用activateFetched()
,因为它具有相同的值?

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

非常感谢您的时间和回答。这意味着,如果我将默认缓存值设置为6小时,那么每6小时
fetch
将与服务器进行检查,否则它将使用缓存值?在这种情况下,每次启动应用程序时调用
fetch
并打开
onComplete
apply
activateFetched()
不是一个问题吗?我无法告诉您调用activateFetched()是否会对您造成问题。这取决于您打算如何使用这些值。只有在您愿意替换时才可以激活,因为可以在调用时替换所有值。我理解您的意思,但我认为我遗漏了一些东西。我想说的是,假设我的远程配置参数
myParam
每月更改一次。这意味着,考虑到
firebasemoteconfig.getString(myParam)
实际上应该返回相同的值,即使不使用
activateFetched
我也不确定您在问什么,每天我都会用相同的缓存值反复调用
activateFetched()
。您需要知道的唯一一件事是,激活获取的值将使它们通过getString等方式可供您的代码使用。如果您不激活,它们将永远不会出现在您的应用程序中。如果您在激活时没有新获取的值,则您的应用程序将看不到任何更改。您将无法判断是否有新值。你应该每次都激活。