我可以使用 Firebase 远程配置来更新 Android 应用的 strings.xml 吗?

Posted

技术标签:

【中文标题】我可以使用 Firebase 远程配置来更新 Android 应用的 strings.xml 吗?【英文标题】:Can I use Firebase remote config for updating strings.xml of Android app? 【发布时间】:2017-01-24 05:39:55 【问题描述】:

众所周知,Firebase 远程配置是一项云服务,可让您更改应用的行为和外观,而无需用户下载应用更新。

我想知道我可以使用Firebase Remote Config 来更新strings.xml吗?

有时我需要更新文件strings.xml(例如:更正区域设置语言的翻译)。为此,我必须更新我的应用程序。

如果我们可以将strings 存储在像Firebase 这样的服务器中,那就太好了。

【问题讨论】:

strings.xml 不能在运行时更改。 @AtifFarrukh 谢谢。 @TOP 虽然你不能动态更新strings.xml。有一个简单的解决方案。在下面检查我的答案。 你可以查看这个firebase解决方案***.com/a/69600481/5142776 【参考方案1】:

我认为你不能通过 Firebase 做到这一点,只需要更新 apk。

【讨论】:

很伤心【参考方案2】:

动态更新 strings.xml 是不可能的,但有一个解决方案。当我想使用 Firebase Remote Config 进行 A/B 测试时,我遇到了同样的问题。所以我为 android 创建了FString 库,它提供了一个智能的解决方案。它目前在生产中为 Mouve Android App 供电。

安装

在您项目的模块中build.gradle添加此依赖项
implementation 'com.ravindrabarthwal.fstring:fstring:1.0.0'
在您的 Android Application 类中添加以下代码
import com.example.myapp.R.string as RString // Import your string 

class MyApp: Application() 

    override fun onCreate() 
        super.onCreate()
        FString.init(RString::class.java) // Initializes the FString
    


用法

访问字符串

  // This is how you get strings without FString
  context.getString(R.string.my_app_name) // This is how you normally do

  // To get the string using FString use
  FString.getString(context, R.string.my_app_name)

  // If you prefer extension function use
  context.getFString(R.string.my_app_name) // This is how FString works ;)

更新 FString 值

  /*
   * Assume this JSON is coming from server. The JSON string 
   * must be parseable to a JSON object with key and value pairs
   */
  var jsonFromServer = """
      
        "my_app_name": "MyApp v2.0",
        "some_other_string": "this is so cool",
      
  """.trimIndent()

  // This will update the SharedPreference using keys from
  // above JSON and corresponding value. The SharedPreference will
  // not save any key that is not is strings.xml
  FString.update(context, jsonFromServer) 

查看库文档以获取更多信息。如果您觉得答案有帮助,请点赞并将其标记为答案。

【讨论】:

以上是关于我可以使用 Firebase 远程配置来更新 Android 应用的 strings.xml 吗?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Firebase 远程配置不更新值?

Firebase 远程配置在更新时强制刷新

Android - 应用更新时的 Firebase 远程配置缓存

在 iOS 应用中使用远程配置 Firebase

需要将firebase远程配置中的值更新为我的plist

React JS App 与 Firebase 远程配置以获取远程标志