如何在' debug'上运行调试应用版本Firebase数据库

时间:2016-05-21 09:03:53

标签: android firebase google-play-services firebase-realtime-database

在Google I / O 2016会议中,显示了对Firebase完全集成的重大改进。在我的应用程序中,我尝试迁移到新的解决方案,但有几个问题。其中之一如下:

在我的Firebase应用中,我使用参数来定义Firebase数据库,如下所示(gradle):

gradle.properties文件:

FIREBASE_REF_REL="https://xxxxxxx.firebaseio.com/"
FIREBASE_REF_DEB="https://xxxxxxx-dev.firebaseio.com/"

build.gradle文件:

buildTypes {
        debug {
            minifyEnabled false
            multiDexEnabled true
            it.buildConfigField 'String', 'FIREBASE_ROOT_URL', FIREBASE_REF_DEB
        }
        release {
            minifyEnabled true
            useProguard true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            zipAlignEnabled true
            it.buildConfigField 'String', 'FIREBASE_ROOT_URL', FIREBASE_REF_REL
        }
        return true
    }

这使我可以针对调试Firebase环境运行我的调试应用程序,这有助于我测试数据模型和安全规则中的更改,而不会影响生产环境。

在新的Firebase解决方案中,这似乎不再可行,因为生成的google-services.json文件包含Firebase参考(如下所述:https://firebase.google.com/support/guides/firebase-android#import_your_project_to_the_new_firebase_console_numbered)。

尝试引用我的调试数据库时,出现以下类型的错误:

Caused by: com.google.firebase.database.DatabaseException: Invalid URL (https://xxxxxxx-dev.firebaseio.com/) passed to getReference().  URL was expected to match configured Database URL: https://xxxxx.firebaseio.com

我的问题:在新情况下针对测试Firebase数据库运行应用的正确方法/最佳做法是什么?

2 个答案:

答案 0 :(得分:17)

我不确定这是最佳做法。

您可以使用不同的google-services.json文件 我正在调查当前插件(com.google.gms:google-services:3.0.0)是否支持构建类型。 前一个(com.google.gms:google-services:2.1.X)支持的风格,但不支持类型。

在任何情况下,你都应该能够像这样使用somenthing:

app/src/release/google-services.json
app/google-services.json

在这种情况下,插件会查找位置并在找到google-services.json文件时停止。

通过这种方式,您应该可以使用不同的firebase应用程序进行调试和发布。

答案 1 :(得分:-1)

上面的答案指出,不需要各种google-services.json文件。而是在Firebase中创建项目。每个项目可以有多个应用程序(甚至跨越不同的平台)。

在我的例子中,我有两种构建类型(调试和发布)和两个productFlavor,导致4个应用程序具有不同的包名称:

  • fullDebug:com.company.myapp.debug
  • fullRelease:com.company.myapp
  • demoDebug:com.company.myapp.demo.debug
  • demoRelease:com.company.myapp.demo

一个google-services.json文件涵盖了所有这些变体,应该放入Android Studio项目的app模块中。