有没有办法覆盖Firebase远程配置的区域/国家

时间:2016-12-21 15:00:26

标签: android firebase firebase-remote-config

我在启动时覆盖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(...),因为它们的更新方式太晚了。

1 个答案:

答案 0 :(得分:0)

Firebase控制台

a)为区域设置设置用户属性。转到Analytics菜单,然后选择USER PROPERTIES标签。

  1. 提供用户属性名称。像user_locale
  2. 添加说明,保存和发布更改。
  3. b)设置远程配置的条件。转到Remote Config菜单,然后选择CONDITIONS标签。

    1. 选择用户属性 - user_locale
    2. 选择FOR TEXT - exactly matches
    3. 放置您需要的语言环境。就像德语de一样。
    4. 为条件添加translation_de之类的名称并选择颜色。
    5. 保存并发布更改。
    6. c)为每个远程配置参数添加条件值。

      1. 从下拉菜单中选择适当的条件,例如translation_de
      2. 更新并发布更改。
      3. 代码集中的区域设置更改用户属性

        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();
                    }
                }
            });