• 日常搜索
  • 百度一下
  • Google
  • 在线工具
  • 搜转载

适用于Android应用的Firebase远程配置

firebase 远程配置是一项独特的服务,旨在让您在用户设备上安装应用实例时对其进行细粒度控制。通过使用它,您可以在整个用户群中可靠地修改应用程序的外观和行为,而无需在 Google Play 上发布更新。

如果您认为这可能存在安全风险,请让我向您保证,远程配置不会让您远程将新代码注入您的应用程序。它只允许您通过 Firebase 控制台修改代码中已经存在的某些预先确定的变量的值。实际上,您可以将变量视为您的应用程序所依赖的服务器端变量。

在本教程中,我将向您展示如何在 android 应用程序中使用远程配置的一些最强大的功能。

1.为什么要使用远程配置?

Remote Config api主要用于替代应用程序中简单的硬编码值。此类值的示例可以是颜色、尺寸、延迟和标签。

为了更好地理解 API 的重要性,请考虑以下场景:您创建并发布了一个应用程序,其中包含所有标签的字体大小和颜色的硬编码值。几天后,您的用户告诉您他们更喜欢更大的字体大小和不同的字体颜色。因为这些值是硬编码的,为了改变它们,你现在必须修改你的代码,再次构建应用程序,给它一个新的版本号,然后在 Google Play 上重新发布它。对于这样一个小修复来说,这是很多工作。此外,如果用户改变主意,您将不得不从头再来!

借助 Firebase 远程配置,您可以远程配置字体大小和字体颜色变量,并使用 Firebase 控制台随时快速更改它们的值,次数不限。这种现代方法还确保更改尽快在所有用户的设备上发生,而无需他们手动下载任何更新。

2.项目设置

使用 Android Studio 的 Firebase 助手,只需单击几下即可将远程配置添加到您的项目中。

首先转到工具 > Firebase  ,然后在出现的面板中选择远程配置 > 设置 Firebase 远程配置 。 

适用于Android应用的Firebase远程配置  第1张接下来,按Connect to Firebase 按钮将您的 Android Studio 项目与 Firebase 项目相关联。在弹出的对话框中,选择Create new Firebase project 选项并按下Connect to Firebase 按钮。

适用于Android应用的Firebase远程配置  第2张成功连接后,您可以按Add Remote Config to your app 按钮,将所有必需的依赖项添加到项目的 Gradle 文件中。出现提示时,按接受更改 按钮以完成项目设置。

适用于Android应用的Firebase远程配置  第3张

3.定义配置参数

您希望能够远程更改的所有变量都必须在您的 Firebase 项目中定义为远程配置参数。因此,使用浏览器登录Firebase 控制台,向下滚动Project Overview 部分以找到Remote Config 卡,然后按Get Started 按钮。

在远程配置服务的欢迎屏幕中,按添加您的第一个参数 按钮开始添加变量。

适用于Android应用的Firebase远程配置  第4张现在让我们定义两个参数: font_size 和font_color。前者应为数字,后者应为字符串。确保为两者分配合理的默认值。

适用于Android应用的Firebase远程配置  第5张您现在应该能够看到您创建的两个参数。但是,除非您发布它们,否则它们的值将无法用于您的应用程序。所以按下发布更改 按钮。

适用于Android应用的Firebase远程配置  第6张

4.准备布局

为了能够使用我们创建的参数,TextView 请在您的活动的布局 XML 文件中添加一个显示消息的小部件。如果您为本教程创建了一个新的 Android Studio 项目,请随意使用TextView 默认可用的“Hello World”小部件,但请确保您给它一个 id。

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="This is a test!"
    android:id="@+id/my_message"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

在onCreate() 您的活动方法中,您现在可以使用该findViewById() 方法获取对小部件的引用。

val myMessage = findViewById<TextView>(R.id.my_message)

5.初始化远程配置

我们的应用程序必须能够在第一次打开时正常工作,即使用户没有连接到 Internet。因此,它需要知道我们的远程配置参数的名称和默认值。创建一个地图来存储它们是一个好主意。

val defaults = mapOf(
    "font_size" to 18,
    "font_color" to "#ff0000"
)

请注意,名称和默认值必须与 Firebase 控制台中的对应项相同。

我们现在可以使用defaults 地图为远程配置服务初始化客户端。为此,首先通过调用类的getInstance() 方法 创建客户端实例FirebaseRemoteConfig ,然后将映射传递给其setDefaults() 方法。

val remoteConfig = FirebaseRemoteConfig.getInstance()
remoteConfig.setDefaults(defaults)

此时,远程配置客户端已准备就绪,我们可以开始使用它提供的值。

6.使用默认值

该FirebaseRemoteConfig 实例提供了一些直观命名的方法,您可以使用它们来获取远程配置参数的值。例如,您可以调用该 getDouble() 方法来获取数字值。同样,您可以调用该 getString() 方法来获取字符串值。

以下代码向您展示了如何获取font_size 和 font_color 参数的值。

val fontSize = remoteConfig.getDouble("font_size")
val fontColor = remoteConfig.getString("font_color")

一旦你有了这些值,你就可以自由地以任何你想要的方式使用它们。现在,让我们使用它们来更改myMessage 小部件的外观。

myMessage.textSize = fontSize.toFloat()
myMessage.setTextColor(Color.parseColor(fontColor))

如果您现在运行应用程序,您将能够TextView 使用远程配置参数的默认值查看小部件。

适用于Android应用的Firebase远程配置  第7张

7.获取最新值

现在,远程配置客户端只是从我们传递给它的映射中返回值。为了允许它使用从 Firebase 获取的值,我们必须调用它的 activatefetched() 方法。

remoteConfig.activateFetched()

但是,该activateFetched() 方法实际上并不从 Firebase 获取值。因此,我们必须调用 fetch() next 方法,该方法异步运行,以获取值。

remoteConfig.fetch()

如果此时运行应用程序,它仍将使用默认值。但是,如果您等待几秒钟,然后将其关闭并再次打开,它将开始使用您在 Firebase 控制台中输入的值。

通常,最好让更改的值仅在用户下次打开应用程序时生效。您可以将***器附加到Task 该方法返回的对象 fetch() 并在***器内更新您的用户界面,但您的用户可能不喜欢这种突然的变化。

但是,您可以将***器用于调试目的。

remoteConfig.fetch().addOnSuccessListener {
    Log.i(TAG, "Fetched values successfully")
}

8.改变价值观

目前,地图中的值与远程值匹配。为了能够看到远程配置服务的运行情况,我们必须更改我们在 Firebase 控制台中提到的值。因此,返回控制台并单击您在“远程配置”部分中看到的参数之一。

在弹出的对话框中,保持Parameter key 字段不变,但更改值。同样,您也可以更改其他参数的值。

最后,确保您按下Publish Changes 按钮,以便远程配置客户端可以使用这些值。

适用于Android应用的Firebase远程配置  第8张

如果您现在打开应用程序,关闭它,然后再次打开它,您应该会看到 TextView 小部件看起来不同。

适用于Android应用的Firebase远程配置  第9张

9.为参数添加条件

您不必总是向所有用户推出相同的远程配置值。Firebase 控制台允许您向参数添加条件,以便它们向用户群的不同子集返回不同的值。您可以使用许多规则来创建此类子集。例如,您可以定位属于特定***/地区的用户、使用运行特定 Android 版本的设备的用户,甚至是说特定语言的用户。

由于 Firebase 透明地管理它们,因此您无需对代码进行任何更改即可处理与参数关联的条件。

作为示例,现在让我们向font_color 参数添加一个条件,使其值仅对印度用户为蓝色。

首先单击 Firebase 控制台中的参数。在出现的表单中,单击为条件添加值 下拉字段并选择定义新条件。

适用于Android应用的Firebase远程配置  第10张

在接下来打开的对话框中,您将能够为您的条件命名,并从Apply if... 下拉列表中选择各种选项,让您专注于特定的用户组. 要定位特定***/地区的用户,您必须选择***/地区 选项。在旁边显示的列表中,您可以选择一个或多个***/地区。在这里选择印度 。

适用于Android应用的Firebase远程配置  第11张填写完所有字段后,按创建条件 按钮以完成条件。

此时,您的参数将能够接受两个值而不是一个。保持默认值 字段不变,并在条件值字段中输入蓝色的十六进制代码。

适用于Android应用的Firebase远程配置  第12张如果您现在发布更改,印度的用户将收到额外的更新,TextView 小部件中的文本将显示为蓝色。

适用于Android应用的Firebase远程配置  第13张

结论

现在您知道如何使用 Firebase Remote Config 和 Firebase 控制台远程修改应用了。有了一些创造力,您可以使用该服务做很多事情来改善您的应用程序的用户体验。


文章目录
  • 1.为什么要使用远程配置?
  • 2.项目设置
  • 3.定义配置参数
  • 4.准备布局
  • 5.初始化远程配置
  • 6.使用默认值
  • 7.获取最新值
  • 8.改变价值观
  • 9.为参数添加条件
  • 结论