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(左角构建变体)中更改变体。出于测试目的,我希望允许用户更改变体。此更改将创建我的应用程序的第二个版本。我不想这样