2016-12-21 6 views
1

Я переопределяю Locale моего приложения Android при запуске и позволяю менять регион во время выполнения. Я настройки локали, как это:Есть ли способ переопределить регион/страну Firebase Remote Config

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 с/Регион Страна Condition. , например.

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

Если я теперь мое устройство установлено в de_DE и мое приложение готово, чтобы fr_FR я получит test_property от de_DE области (Hallo). Что я хочу получить, это test_property для региона fr_FR, установленное приложением.

Я попытался удалить FirebaseApp.initializeApp(...) после смены региона на приложение, но Firebase, кажется, доставит регион из другого места.

Кто-нибудь знает, как установить или переопределить регион программно, чтобы firebase использовала эту область для состояния региона?

Я не хочу использовать Firebase Analytics User Properties, так как они обновляются слишком поздно.

+1

>> "Я не хочу использовать Firebase Analytics Свойства пользователя, так как они обновляются слишком поздно." Вы на самом деле пробовали? Свойства пользователей аналитики IIRC должны немедленно повлиять на разрешение условий конфигурации Firebase Remote Config. Просто убедитесь, что вы получаете свежие конфиги с серверов, а не из локального кеша приложения. – user1139880

ответ

0

В вашем Firebase консоли:

а) Установите свойство пользователя для локализации. Перейдите в меню Analytics и выберите USER PROPERTIES tab.

  1. Предоставить имя пользователя. Мне нравится user_locale.
  2. Добавить описание, сохранить и опубликовать изменения.

b) Установить условие для удаленных конфигураций. Перейдите в меню Remote Config и выберите CONDITIONS tab.

  1. Выберите свойство пользователя по - user_locale.
  2. Выбрать FOR TEXT - exactly matches.
  3. Установите язык, в котором вы нуждаетесь. Как de для немецкого.
  4. Назовите имя translation_de для условий и выберите цвет.
  5. Сохранение и публикация изменений.

c) Для каждого параметра удаленной конфигурации добавьте значение для условия.

  1. Из выпадающего меню выберите подходящее состояние, например translation_de.
  2. Обновление и публикация изменений.

Об изменении локали в коде установлен User Property

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(); 
      } 
     } 
    }); 
Смежные вопросы