Удаленный конфиг Firebase всегда попадает на сервер - PullRequest
0 голосов
/ 04 марта 2019

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

1 Ответ

0 голосов
/ 09 марта 2019

Firebaser here!

Это известная проблема, которая затрагивает Remote Config SDK 16.3.0.Мы активно работаем над исправлением для следующего выпуска.

...