我在启动时覆盖Android应用程序的区域设置,并允许在运行时更改区域。 我将Locale设置为这样:
Resources res = context.getResources();
Configuration configuration = res.getConfiguration();
DisplayMetrics metrics = res.getDisplayMetrics();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
configuration.setLocale(locale);
}else{
configuration.locale = locale;
}
Locale.setDefault(locale);
res.updateConfiguration(configuration, metrics);
现在我想使用具有区域/国家/地区条件的Firebase-Remote-Config。 e.g。
test_property -> fr_FR = Bonjour
-> de_DE = Hallo
-> default = Hi
如果我现在将我的设备设置为de_DE且我的应用设置为fr_FR
,我将从test_property
区域(de_DE
)获得Hallo
。
我想得到的是应用设置的区域test_property
的{{1}}。
我在更改应用中的区域后尝试fr_FR
,但Firebase似乎从其他地方获取了该区域。
有人知道以编程方式设置/覆盖区域的方法,以便firebase将该区域用于区域条件吗?
我不想使用Firebase Analytics FirebaseApp.initializeApp(...)
,因为它们的更新方式太晚了。
答案 0 :(得分:0)
在 Firebase控制台:
中 a)为区域设置设置用户属性。转到Analytics
菜单,然后选择USER PROPERTIES
标签。
user_locale
。 b)设置远程配置的条件。转到Remote Config
菜单,然后选择CONDITIONS
标签。
user_locale
。FOR TEXT
- exactly matches
。de
一样。translation_de
之类的名称并选择颜色。c)为每个远程配置参数添加条件值。
translation_de
。代码集中的区域设置更改用户属性
FirebaseAnalytics.getInstance(getContext())
.setUserProperty("user_locale", "de");
FirebaseRemoteConfig.getInstance()
.fetch(1)
.addOnCompleteListener(activity, new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
FirebaseRemoteConfig.getInstance().activateFetched();
}
}
});