代码之家  ›  专栏  ›  技术社区  ›  Nabil

Firebase远程配置-语言条件不起作用-android

  •  1
  • Nabil  · 技术社区  · 7 年前

    我正在我的应用程序中使用firebase远程配置。我有两个参数message1和message2,如下图所示。图像中也可以看到语言条件(阿拉伯语和法语)。

    enter image description here

                Locale locale = new Locale("ar");//or "fr" if user selects french
                Locale.setDefault(locale);
                Configuration configuration = new Configuration();
                configuration.locale = locale;
                getResources().updateConfiguration(configuration, getResources().getDisplayMetrics());
    

    这是我用来从firebase获取数据的代码:

    mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
    mFirebaseRemoteConfig.setDefaults(R.xml.remote_config_defaults);
    
    long cacheExpiration = 0;
    mFirebaseRemoteConfig.fetch(cacheExpiration)
            .addOnCompleteListener(MainActivity.this, new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if (task.isSuccessful()) {
                        Toast.makeText(MainActivity.this, "Fetch Succeeded",
                                Toast.LENGTH_SHORT).show();
    
                        // After config data is successfully fetched, it must be activated before newly fetched
                        // values are returned.
                        mFirebaseRemoteConfig.activateFetched();
                    } else {
                        Toast.makeText(MainActivity.this, "Fetch Failed",
                                Toast.LENGTH_SHORT).show();
                    }
                    String welcomeMessage1 = mFirebaseRemoteConfig.getString("message1");
                    String welcomeMessage2 = mFirebaseRemoteConfig.getString("message2");
                }
            });
    

    现在的问题是,每当我试图从服务器获取消息1和消息2时,它只返回默认的英语文本,而不会返回相应的阿拉伯语或法语区域设置文本。这是为什么?请帮忙。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Mahmoud Shawky    7 年前

    这个 language condition 检查设备语言而不是应用程序语言,因此我认为您需要添加 user property 与应用程序语言进行比较

    推荐文章