设置应用程序语言并始终使用设备系统语言发送到 firebase 配置

问题描述 投票:0回答:1

我有一个 Android 应用程序并使用远程配置。

我有这个用例,我想在该请求中发送应用程序语言更改。我的应用程序支持英语和越南语,用户可以选择他们的首选语言。我只是在测试更改为越南语。

但是,在请求中它始终使用我的系统设备语言。由于它始终设置为英语,因此它始终发送 en-US。

在我的 Firebase 远程配置控制台中,我有一个字段具有英语和越南语的语言条件。因此,根据该条件,我可以在应用程序中执行某些操作。

class FetchRemoteConfigUseCase @Inject constructor(
    private val remoteConfigProvider: RemoteConfigProvider,
    private val firebaseRemoteConfigSettings: FirebaseRemoteConfigSettings,
    private val schedulersFacade: SchedulersFacade
) {
    fun execute(): Completable {

        return Completable.create { completable ->
            remoteConfigProvider
                .remoteConfig
                .setConfigSettingsAsync(firebaseRemoteConfigSettings)
                .continueWithTask {
                    remoteConfigProvider.remoteConfig.setDefaultsAsync(mapOf("languageCode" to "vi-VN"))
                    remoteConfigProvider.remoteConfig.fetchAndActivate()
                }
                .addOnCompleteListener {
                    completable.onComplete()
                }
        }.observeOn(schedulersFacade.io)
    }
}

当我在 charles proxy 中检查请求时,我只能看到 en-US。

{
    "appInstanceId": "app instance Id"",
    "appVersion": "4.0.0",
    "countryCode": "US",
    "analyticsUserProperties": {
        "current_cluster": "cluster"
    },
    "appId": "app Id"",
    "platformVersion": "30",
    "timeZone": "Asia\/Vietnam",
    "sdkVersion": "21.0.2",
    "packageName": "package name",
    "languageCode": "en-US",
    "appBuild": "140"
}

我想知道如何发送上面的语言代码。

只是一个附带问题,firebase 如何知道在哪里提取这些属性并将它们发送到请求中?

android firebase firebase-remote-config
1个回答
0
投票

要根据应用中的用户选择将语言代码发送到 Firebase Remote Config:

  • 将用户的语言选择(例如“vi-VN”)存储在本地存储中, 就像共享首选项。
  • 检索此语言设置并将其应用到您的 Firebase Remote 在获取配置之前进行配置请求。

EG

val userLanguage = sharedPreferences.getString("user_language", "en-US")
remoteConfig.setDefaultsAsync(mapOf("languageCode" to userLanguage))
remoteConfig.fetchAndActivate()

Firebase 通过集成 SDK 自动收集应用版本和设备信息等标准详细信息。当您手动设置其他属性(例如 languageCode)时,Firebase 会将这些属性包含在服务器请求中,从而帮助根据您的远程配置设置确定要返回的适当配置。

您还可以查看他们的文档

Firebase 远程配置

© www.soinside.com 2019 - 2024. All rights reserved.