【问题标题】:Is there a way to override Firebase Remote Config's Region/Country有没有办法覆盖 Firebase 远程配置的地区/国家
【发布时间】:2017-03-16 13:56:07
【问题描述】:

我在启动时覆盖了我的 Android 应用程序的区域设置,并允许在运行时更改区域。 我是这样设置语言环境的:

    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。 例如

test_property -> fr_FR = Bonjour 
              -> de_DE = Hallo
              -> default = Hi

如果我现在将我的设备设置为 de_DE 并将我的应用设置为 fr_FR,我将从 de_DE 区域 (Hallo) 获得 test_property。 我想得到的是应用程序设置的区域fr_FRtest_property

我在应用程序中更改区域后尝试FirebaseApp.initializeApp(...),但 Firebase 似乎从其他地方获取该区域。

是否有人知道以编程方式设置/覆盖区域的方法,以便 firebase 将该区域用于区域条件?

我不想使用 Firebase Analytics User Properties,因为它们更新得太晚了。

【问题讨论】:

  • >> “我不想使用 Firebase Analytics 用户属性,因为它们更新得太晚了。”你真的试过了吗? IIRC 分析用户属性应立即生效,以便解决 Firebase 远程配置条件。只要确保从服务器而不是应用本地缓存中获取新的配置。
  • 你找到解决方案来覆盖这个值了吗?

标签: android firebase firebase-remote-config


【解决方案1】:

在您的 Firebase 控制台中:

a) 为语言环境设置用户属性。转到Analytics 菜单并选择USER PROPERTIES 选项卡。

  1. 提供用户属性名称。喜欢user_locale
  2. 添加描述、保存和发布更改。

b) 为远程配置设置条件。转到Remote Config 菜单并选择CONDITIONS 选项卡。

  1. 选择用户属性 - user_locale
  2. 选择FOR TEXT - exactly matches
  3. 输入您需要的语言环境。比如德语的de
  4. 输入translation_de 之类的名称作为条件并选择颜色。
  5. 保存并发布更改。

c) 为每个远程配置参数添加条件值。

  1. 从下拉菜单中选择合适的条件,例如translation_de
  2. 更新和发布更改。

在您的代码集中更改区域设置用户属性

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

【讨论】:

  • 这不是他要找的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-22
  • 1970-01-01
  • 2011-05-05
  • 2018-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多