Android 如何以编程方式更改Firebase google JSON以适应不同的构建变体?

Android 如何以编程方式更改Firebase google JSON以适应不同的构建变体?,android,firebase,android-productflavors,Android,Firebase,Android Productflavors,通常,要在构建变体之间切换,可以使用productFlavors。但我想在运行时用button更改这些变量 存在包含多个构建变量的ServerTypeenum类。 我有Server类,它具有apiKey和url属性 在这些变体中有Server对象(每个构建变体可以使用多个API) 此枚举类具有与productFlavors相同的功能。我可以在运行时更改这些地址,并从下拉菜单中设置活动变量。这将影响我应用程序中的每个API调用。我不能改变的是Firebase选择的google.json。有没有办法

通常,要在构建变体之间切换,可以使用
productFlavors
。但我想在运行时用button更改这些变量

存在包含多个构建变量的
ServerType
enum类。 我有
Server
类,它具有
apiKey
url
属性

在这些变体中有
Server
对象(每个构建变体可以使用多个API)

此枚举类具有与
productFlavors
相同的功能。我可以在运行时更改这些地址,并从下拉菜单中设置活动变量。这将影响我应用程序中的每个API调用。我不能改变的是Firebase选择的
google.json
。有没有办法告诉Firebase使用不同的json?我有4个变体,JSON位于项目中的每个变体文件中


Firebase正在根据构建应用程序时选择的
构建变量自动选择google.json。

您是否尝试过多个环境目录?它允许您为不同的构建变体放置几个不同的
google.json
文件。()


这也是一个专用目录,因此不是动态的,但这是Firebase在运行时可以处理的所有内容。

使用哪个google-services.json文件始终由google play services插件在构建时决定。它永远不会在运行时确定


如果您需要在运行时更改项目配置,您将无法使用该插件或其google-services.json配置文件。您需要找到另一种方法,在构建时将所有可能的不同配置放入应用程序中,然后在运行时选择要使用的配置。您必须自己调用FirebaseApp.initializeApp(),而不是接受默认配置。有很多策略可以做到这一点,但我会向您推荐。

OP询问如何在运行时选择项目配置,而不是使用构建风格的构建时。我在我的应用程序中使用了不同的变体。在初始化
Api
类的
应用程序中,我根据
BuildConfig.FLAVOR
值从枚举类加载中选择哪个
ServerType
。但是我想在运行时更改
BuildVariant
。可能吗?如果我在运行时单击应用程序下拉列表中的不同选项,我想更改
构建变量
,重新启动应用程序并在创建
应用程序
类时加载
服务器类型
。因为现在我只能在AndroidStudio(左角构建变体)中更改变体。出于测试目的,我希望允许用户更改变体。此更改将创建我的应用程序的第二个版本。我不想这样