Я начал изучать удаленный конфиг 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 документация, которую я вижу
Чтобы идентифицировать текущий экземпляр приложения, запрос на выборку создает маркер идентификатора экземпляра Firebase, который периодически отправляет данные в бэкэнд Firebase
Вкл.каждый новый fetch
вызов новый идентификатор создается?И как работает периодические запросы?Я ожидал вызвать выборку только один раз и автоматически отправлять запрос, когда запрашивается устаревшее значение свойства или что-то подобное