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

Firebase远程配置-语言条件不工作-android,android,firebase,firebase-remote-config,Android,Firebase,Firebase Remote Config,我正在我的应用程序中使用firebase远程配置。我有两个参数message1和message2,如下图所示。图像中还可以看到语言条件(阿拉伯语和法语) 用户可以在应用程序开始时选择应用程序语言(单独的活动),这是我用来更改语言的代码: Locale locale = new Locale("ar");//or "fr" if user selects french Locale.setDefault(locale); C

我正在我的应用程序中使用firebase远程配置。我有两个参数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");
            }
        });
mFirebaseRemoteConfig=FirebaseRemoteConfig.getInstance();
mFirebaseRemoteConfig.setDefaults(R.xml.remote\u config\u默认值);
长缓存过期=0;
mFirebaseRemoteConfig.fetch(缓存过期)
.addOnCompleteListener(MainActivity.this,新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
Toast.makeText(MainActivity.this,“获取成功”,
吐司。长度(短)。show();
//配置数据成功获取后,必须在新获取之前将其激活
//返回值。
mFirebaseRemoteConfig.activateFetched();
}否则{
Toast.makeText(MainActivity.this,“获取失败”,
吐司。长度(短)。show();
}
String welcomeMessage1=mFirebaseRemoteConfig.getString(“message1”);
String welcomeMessage2=mFirebaseRemoteConfig.getString(“message2”);
}
});
现在的问题是,每当我试图从服务器获取message1和message2时,它只返回默认的英语文本,而不会返回相应的阿拉伯语或法语区域设置文本。为什么会这样?请提供帮助。

检查设备语言而不是应用程序语言,因此我认为您需要在应用程序语言中添加一个,并与之进行比较

修复了它

修复了FirebaseRemoteConfig.fetch()有时会出现的问题 报告格式错误的语言标记


尝试将firebase升级到

能否尝试在activateFetched()之后调用getString()。另外,您能展示一下您的条件吗?您是如何建立法语区域设置条件的?Thanks我已尝试在activateFetched()之后调用getString()。但同样的问题依然存在。对于从Firebase控制台通过单击来设置参数条件,如果设备语言为“fr”,则为条件添加值->应用您是否能够实现这一点?我被困在一个类似的问题上。