Как изменить colorPrimary, colorPrimaryDark и т. Д. С помощью Firebase Remote Config?

То, что я пытаюсь сделать, это сохранить значения colorPrimay, colorDarkPrimary и т. Д. В RemoteConfig в Firebase, чтобы я мог изменять цвета приложений из удаленной конфигурации, и я сделал следующее

ОБНОВЛЕНИЕ: я пытаюсь сохранить значения colorPrimay, colorDarkPrimary и т. Д. В RemoteConfig в Firebase, чтобы я мог изменять цвета приложений из удаленного интерфейса. Как я мог это сделать?

ОБНОВИТЬ:

То, что я пытался это как

<--!remote_config_default.xml!-->


<defaultsMap>
<entry>
    <key>primaryColor</key>
    <value>#9c27b0</value>
</entry>
<entry>
    <key>colorPrimaryDark</key>
    <value>#7b1fa2</value>
</entry>
<entry>
    <key>colorAccent</key>
    <value>#FF4081</value>
</entry>
<entry>welcomeMessage</entry>
<value>Connection Failed</value>

И получить вот так

    void applyRemoteConfig() {
        mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
        mFirebaseRemoteConfig.setDefaults(R.xml.remote_config_default);
        // cacheExpirationSeconds is set to cacheExpiration here, indicating that any previously
// fetched and cached config would be considered expired because it would have been fetched
// more than cacheExpiration seconds ago. Thus the next fetch would go to the server unless
// throttling is in progress. The default expiration duration is 43200 (12 hours).
        int cacheExpiration = 1000;
        final String TAG = "Riddles";
        mFirebaseRemoteConfig.fetch(cacheExpiration)
                .addOnCompleteListener(new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(@NonNull Task<Void> task) {
                        if (task.isSuccessful()) {
                            Log.d(TAG, "Fetch Succeeded");
                            // Once the config is successfully fetched it must be activated before newly fetched
                            // values are returned.
                            mFirebaseRemoteConfig.activateFetched();
                        } else {
                            Log.d(TAG, "Fetch failed");
                            String message = mFirebaseRemoteConfig.getString("welcomeMessage");
                            displayWelcomeMessage(message);
                            Log.d(TAG, message);
                        }
                    }
                });

        String message = mFirebaseRemoteConfig.getString("welcomeMessage");
        displayWelcomeMessage(message);
        Log.d(TAG, message);


    }

Но

mFirebaseRemoteConfig.getString("colorPrimary");

mFirebaseRemoteConfig.getString("colorDarkPrimary");

mFirebaseRemoteConfig.getString("welcomeMessage");

Возвращаются нуль.

1 ответ

Вы можете добавить это в свой удаленный конфигурационный файл.

<!-- color entries -->
    <entry>
        <key>color_primary</key>
        <value>#3F51B5</value>
    </entry>
    <entry>
        <key>color_primary_dark</key>
        <value>#303F9F</value>
    </entry>  

Чтобы динамически изменить цвет вашего приложения, установите флаг в удаленной конфигурации и измените его, используя fetch(), Для сложных реализаций обратитесь к этому.

Другие вопросы по тегам