代码之家  ›  专栏  ›  技术社区  ›  Alin

每次缓存过期后调用Firebase RemoteConfig fetch

  •  0
  • Alin  · 技术社区  · 6 年前

    也许我错过了什么,但是 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();
                    }  
                }
            });
    

    是不是应该 fetch 只有当我的数据超过3600秒时,才能成功完成?所以第二次启动应用程序时,fetch应该在没有完成的情况下完成

    医生说:

    默认情况下,缓存在12小时后过期,但您可以更改 通过传递所需的缓存,特定获取的缓存过期 获取方法过期。如果缓存中的值较旧 从服务配置值。如果你的应用要求新的值 提供缓存值。

    onComplete 会触发。。。我应该用 activateFetched() 每次都有相同的价值?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Doug Stevenson    6 年前

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