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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (61)

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

用户可以选择在应用程序开始时选择应用程序语言(单独的活动),这是我用来更改语言的代码:

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

现在的问题是,每当我尝试从服务器获取message1和message2时,它只返回默认的英文文本,它将永远不会返回相应的阿拉伯语或法语语言环境文本。为什么是这样?请帮忙。

提问于
用户回答回答于

你可以尝试在activateFetched()之后调用getString()。此外,你能展示你的条件 - 你是如何建立法国语言环境的吗?

谢谢

扫码关注云+社区

领取腾讯云代金券