使用dev和release数据库设置Firebase以进行调试和发布

时间:2018-05-10 02:35:33

标签: android firebase firebase-realtime-database firebase-authentication

我有两种构建类型 - debugrelease - 以及两种口味,devprod

区别很简单:debug是可调试的二进制文件,release已优化,删除了调试代码,以及Proguard。

dev用于连接到开发Firebase项目,prod用于实际的生产数据库。

有些情况下我想在prod数据库中使用debug,所以我有四种可能的组合。问题是Firebase中的项目设置需要二进制文件签名密钥的SHA1指纹,创建可调试应用程序将始终使用调试密钥。

我在两个Firebase项目上没有相同的密钥,因此在开发Firebase项目上使用调试签名密钥意味着我也无法在prod上使用它,因此我无法使用& #34; prodDebug" setup(即带有可调试二进制文件的prod数据库)。

解决此问题的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

在Fazan Cheng的评论中发表的Medium article中概述了设置中缺少的元素。

对于相同的应用程序ID ,Firebase不允许使用相同的SHA1密钥。这意味着我们可以通过修改每种风格的应用程序ID来解决这个问题。

具体来说,可以使用applicationIdSuffix来完成,它会在应用程序ID中添加一个字符串。例如:

productFlavors {
    dev {
        applicationIdSuffix '.dev'
        versionNameSuffix "-dev"
        dimension 'env'
    }
    prod {
        versionNameSuffix "-prod"
        dimension 'env'
    }
}

如果您的应用程序ID为com.foo.myapplication,则dev风格的ID为com.foo.myapplication.dev。您现在可以使用此新ID生成单独的Firebase项目,并重复使用相同的SHA1密钥。