android - Firebase 远程配置总是命中服务器

标签 android firebase firebase-remote-config

我开始查看 firebase 远程配置,我阅读了文档并创建了一个简单的测试应用程序以了解缓存的工作原理,但我不清楚其行为。

在下面的代码中,每次我更改 welcome_message 属性并单击 fab 按钮时都会获取该属性的新值,我原以为只有在缓存过期后才能获取新值。

public class MainActivity extends AppCompatActivity {

    private FirebaseRemoteConfig remoteConfig;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = findViewById(R.id.fab);
        fab.setOnClickListener(this::fabClickListener);
        remoteConfig = FirebaseRemoteConfig.getInstance();

        FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
                .setDeveloperModeEnabled(false)
//                .setDeveloperModeEnabled(BuildConfig.DEBUG)
                .build();
        remoteConfig.setConfigSettings(configSettings);
        remoteConfig.setDefaults(R.xml.firebase_remote_properties);
    }

    private void fabClickListener(View view) {
        String welcomeMessage = remoteConfig.getString("welcome_message");
        Snackbar.make(view, welcomeMessage, Snackbar.LENGTH_LONG)
                .setAction("Action", null).show();

        remoteConfig.fetch(60_000)
                .addOnFailureListener(exception -> Toast.makeText(this, "Fetch Failed", Toast.LENGTH_SHORT).show())
                .addOnSuccessListener(result -> {
                    Toast.makeText(this, "Fetch Succeeded", Toast.LENGTH_SHORT).show();
                    remoteConfig.activateFetched();
                })
                .addOnCanceledListener(() -> Toast.makeText(this, "Fetch Canceled", Toast.LENGTH_SHORT).show());
    }

    ...
}

正在检查 fetch我看到的文档

To identify the current app instance, the fetch request creates a Firebase Instance ID token, which periodically sends data to the Firebase backend

在每次新的 fetch 调用中都会创建一个新的 ID?还有定期请求是如何工作的?我期望只调用一次获取,并在请求过时的属性值或类似的东西时自动发送请求

最佳答案

这里是 Firebaser!

这是一个影响 Remote Config SDK 16.3.0 的已知问题。我们正在积极致力于下一个版本的修复。

关于android - Firebase 远程配置总是命中服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54985181/

相关文章:

android - 防止 Android 屏幕在 Activity 运行时变暗

ios - 本地存储数据的问题

node.js - Rxjava2如何简洁地将结果从前一个 Node 返回到链中的下一个 Node

android - 无法解析类扩展 BaseAdapter 中的方法 'getBaseContext()'

华为设备上的 Firebase 远程配置/实时数据库

android - 从git推拉后出错

android - 商店后使用启动器时如何防止应用重启?

java - 将 fileChooserParams 中的 mime 类型转换为 Intent.setType 的正确格式

firebase - 如何设置Firebase数据库规则?如何防止已删除用户的.write

android-studio - 错误 : This project uses AndroidX dependencies, 但 'android.useAndroidX' 属性未启用。在 gradle.prop 中将此属性设置为 true