Firebase远程配置始终会命中服务器

Raf*_*les 6 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());
    }

    ...
}
Run Code Online (Sandbox Code Playgroud)

查看我看到的提取文档

为了识别当前应用实例,提取请求会创建一个Firebase实例ID令牌,该令牌会定期将数据发送到Firebase后端

在每个新fetch呼叫上都会创建一个新的ID?定期请求也如何工作?我期望只调用一次fetch,然后在请求过期属性值或类似情况时自动发送请求

小智 2

火霸来了!

这是影响远程配置 SDK 16.3.0 的已知问题。我们正在积极致力于下一版本的修复。