如何以编程方式将Firebase Google JSON更改为不同的构建变体?

时间:2019-07-16 11:36:56

标签: android firebase android-productflavors

通常,可以在productFlavors之间切换构建版本。但是我想在运行时使用按钮更改这些变体。

ServerType枚举类,其中包含多个构建变体。 我有一个ServerapiKey属性的url类。

这些变体内部是Server对象。(每个构建变体可以使用多个API)。

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

Firebase在构建应用时会根据选择的Build Variant自动选择google.json。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

使用哪个google-services.json文件的选择始终由Google Play服务插件在构建时确定。永远不会在运行时确定它。

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