Как изменить 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()
, Для сложных реализаций обратитесь к этому.