我开始查看 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/