Удаленная настройка Firebase isDeveloperModeEnabled () устарела - PullRequest
1 голос
/ 15 апреля 2020

Я пытаюсь получить параметр удаленной конфигурации, используя функцию удаленной настройки Firebase, чтобы я мог получить значения из Firebase и использовать их в приложении. Я уже использую его без проблем, но после обновления Firebase я получаю это предупреждение:

screenshot

Я пытался использовать getMinimumFetchIntervalInSeconds() вместо isDeveloperModeEnabled() во избежание предупреждения.

Вот мой код:

final FirebaseRemoteConfig mFirebaseRemopteconfig = FirebaseRemoteConfig.getInstance();
long cachExpiration = 0;
if (mFirebaseRemopteconfig.getInfo().getConfigSettings().isDeveloperModeEnabled()) {
    cachExpiration = 0;
}
mFirebaseRemopteconfig.fetch(cachExpiration)
    .addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            if (task.isSuccessful()) {
                final String funct = mFirebaseRemopteconfig.getString("functionn");
                if (getPackageName().compareTo(funct) != 0) {
                    finish();
                }
                mFirebaseRemopteconfig.activateFetched();
            }
        }
    });

Есть идеи, как решить эту проблему?

1 Ответ

1 голос
/ 16 апреля 2020

О setMinimumFetchIntervalInSeconds, официально :

Имейте в виду, что этот параметр следует использовать только для разработки, а не для приложения, работающего в производстве. Если вы просто тестируете свое приложение с небольшой группой разработчиков из 10 человек, вы вряд ли достигнете почасового ограничения квоты на стороне обслуживания. Но если вы отправите свое приложение тысячам тестовых пользователей с очень низким минимальным интервалом выборки, ваше приложение, вероятно, достигнет этой квоты.

Хотя вы можете setMinimumFetchIntervalInSeconds отличаться от значения по умолчанию (= 12 часов), все зависит от вас, будет ли оно достигать квоты или нет, и может привести к FirebaseRemoteConfigFetchThrottledException.

Теперь, новый API требует от вас setMinimumFetchIntervalInSeconds для изменения интервала. Это метод FirebaseRemoteConfigSettings.Builder. Таким образом, вы должны построить FirebaseRemoteConfigSettings объект через конструктор после setMinimumFetchIntervalInSeconds, а затем setConfigSettingsAsync встроенный FirebaseRemoteConfigSettings до вашего FirebaseRemoteConfig.

Вот пример моей собственной реализации:

if (BuildConfig.DEBUG) {
    cacheExpiration = 0;
} else {
    cacheExpiration = 43200L; // 12 hours same as the default value
}

FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings
        .Builder()
        .setMinimumFetchIntervalInSeconds(cacheExpiration)
        .build();

config = FirebaseRemoteConfig.getInstance();
config.setConfigSettingsAsync(configSettings);
config.fetch(cacheExpiration).addOnCompleteListener(activity, onCompleteListener);

--------------------------- исправлено --------------- ------------

Для вашей свиньи

проверка, совпадает ли имя пакета

Вы не делаете нужно isDeveloperModeEnabled() или любые настройки интервала. Просто fetch() без каких-либо настроек (но с настройками по умолчанию):

mFirebaseRemopteconfig = FirebaseRemoteConfig.getInstance();
mFirebaseRemopteconfig.fetch()
    .addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            if (task.isSuccessful()) {
                final String funct = mFirebaseRemopteconfig.getString("functionn");
                if (getPackageName().compareTo(funct) != 0) {
                    finish();
                }
                mFirebaseRemopteconfig.activateFetched();
            }
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...