2016-12-21 8 views
1

起動時に自分のAndroid Appのロケールを上書きし、実行時にリージョンを変更できるようにします。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-リモートコンフィグを使用したい: は、私はこのような設定のロケールです。例:

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

私は今、私はde_DE地域(Hallo)からtest_propertyを取得する私のデバイスは、de_DEのに設定され、私のアプリは、fr_FRに設定されている場合。 私が欲しいのは、fr_FR地域のtest_propertyです。

アプリで領域を変更した後、私はFirebaseApp.initializeApp(...)にしようとしましたが、Firebaseは他の領域からその領域を取得しているようです。

地域をプログラムで設定/上書きする方法を知っている人がいますので、firebaseはその地域を地域条件として使用しますか?

私はFirebase Analytics User Propertiesを使用したくないです。遅すぎると更新方法が遅くなります。あなたのFirebaseコンソール

+1

>>「私は、彼らがあまりにも遅更新されますよう、Firebase解析のユーザープロパティを使用したくありません。」実際に試しましたか? IIRCアナリティックユーザのプロパティは、Firebase Remote Configの条件解決のためにすぐに有効になります。アプリのローカルキャッシュからではなく、サーバから新しい設定を取得するようにしてください。 – user1139880

答えて

0

a)のロケールのユーザープロパティを設定します。 Analyticsメニューにアクセスし、USER PROPERTIESタブを選択します。

  1. ユーザープロパティ名を入力します。 user_localeのように。
  2. 説明を追加して保存し、パブリッシュします。

b)リモート設定の条件を設定します。 Remote Configメニューにアクセスし、CONDITIONSタブを選択します。

  1. Userプロパティ選択 - 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(); 
      } 
     } 
    }); 
関連する問題