【问题标题】:Firebase Remote Config: called only once timeFirebase 远程配置:只调用一次
【发布时间】:2020-04-04 06:22:12
【问题描述】:

我已经实现了 Firebase 文档中的基本代码:

mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
        FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
                .setMinimumFetchIntervalInSeconds(20)
                .build();
        mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);

        mFirebaseRemoteConfig.fetchAndActivate()
                .addOnCompleteListener(this, new OnCompleteListener<Boolean>() {
                    @Override
                    public void onComplete(@NonNull Task<Boolean> task) {
                        if (task.isSuccessful()) {
                            boolean updated = task.getResult();
                            LogUtils.LOGD("XXXXX", "firebase remote config fetch OK");
                            treatRemoteConfigValues();

                        } else {
                            LogUtils.LOGD("XXXXX", "firebase remote config fetch failed!!!!");
                        }
                    }
                });

这个回调只被调用一次(在第一次初始化期间),我不明白为什么这个回调不是每 20 秒调用一次。我试图从 Firebase 配置界面更新值,也没有任何反应。

感谢你们的帮助!

【问题讨论】:

    标签: android firebase-remote-config


    【解决方案1】:

    您似乎误解了 setMinimumFetchIntervalInSeconds(20) 的实际含义。它意味着 SDK 会自动为您刷新这些值。根据API documentation

    设置连续 fetch 调用之间的最小间隔。

    在上次从 Firebase 远程配置服务器将使用在 最后一次抓取。

    这意味着:当您调用 fetch() 时,SDK 将在自上次成功获取后的指定时间之后才真正获取新值。该限制有助于防止您的代码通过重复请求(无论是有意还是无意)“向远程配置发送垃圾邮件”。远程配置也会强制执行服务器端速率限制,以保护自己免受行为不端的代码。

    如果您需要对服务器上的某些值进行更多实时更新,请考虑改用实时数据库或 Firebase,这样您就可以建立侦听器,以便在某些值发生更改时立即获得反馈。当然,您将无法使用 Remote Config 的强大配置。

    【讨论】:

    • 绝对是!非常感谢道格!
    • 这是否意味着当您使用 addOnSuccessListener() 或 addOnCompleteListener() 时,方法仍会被调用,但除非满足 setMinimumFetchIntervalInSeconds,否则不会从远程服务器获取值?
    • @chitgoks 是的。这些值按此顺序提供 1. 服务器(如果已获取并激活) 2. 客户端中定义的默认值
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多