2016-11-12 134 views
2

我已经看到很多问题,询问为什么应用程序崩溃时显示以下错误日志:无法获取FirebaseDatabase实例:FirebaseApp对象的FirebaseOptions对象中没有DatabaseURL。Firebase数据库getInstance崩溃

我通过Android工作室配置了Firebase。

enter image description here

我仍然会遇到的错误。

我相信google-services.json文件没有错误,因为这是由Android Studio自动创建的。

任何帮助,将不胜感激!

我很乐意为我提供的任何代码添加更多细节。

编辑:创建数据库实例

FirebaseDatabase database = FirebaseDatabase.getInstance(); 

    DatabaseReference myRef = database.getReference("message"); 
    myRef.setValue("Hello, Wrld!"); 

这里是我的应用程序级别的gradle产出:

apply plugin: 'com.android.application' 

android { 
compileSdkVersion 24 
buildToolsVersion "24.0.3" 

defaultConfig { 
    applicationId "com.mypackage" 
    minSdkVersion 15 
    targetSdkVersion 24 
    versionCode 1 
    versionName "1.0" 
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
} 

buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 
    } 
} 

productFlavors { 
    lite { 
     applicationId "com.mypackage.a" 
     versionCode 6 
     versionName "3.0.0-lite" 
    } 
    pro { 
     applicationId "com.mypackage.b" 
     versionCode 1 
     versionName "3.0.0-pro" 
    } 
} 
} 

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
    exclude group: 'com.android.support', module: 'support-annotations' 
}) 
compile 'com.android.support:appcompat-v7:24.2.1' 
compile 'com.facebook.android:facebook-android-sdk:4.16.1' 
testCompile 'junit:junit:4.12' 
compile 'com.google.firebase:firebase-database:9.8.0' 
compile 'com.google.firebase:firebase-core:9.8.0' 
compile 'com.google.firebase:firebase-crash:9.8.0' 

compile 'com.google.android.gms:play-services-ads:9.8.0' 

compile 'com.google.android.gms:play-services-places:9.8.0' 
compile 'joda-time:joda-time:2.9.4' 

} 
apply plugin: 'com.google.gms.google-services' 

这是我的项目级别的gradle产出:

// Top-level build file where you can add configuration options common to all sub-projects/modules. 

buildscript { 
repositories { 
    jcenter() 
} 
dependencies { 
    classpath 'com.android.tools.build:gradle:2.2.2' 

    classpath 'com.google.gms:google-services:3.0.0' 


    // NOTE: Do not place your application dependencies here; they belong 
    // in the individual module build.gradle files 
} 
} 

allprojects { 
repositories { 
    jcenter() 
} 
} 

task clean(type: Delete) { 
delete rootProject.buildDir 
} 

编辑:另外,即使我删除了我的google-services.json文件,代码仍然编译并在运行时失败。这是意想不到的。我应该得到一个不让文件编译的错误。

感谢

+0

您能否在您创建的地方显示您的实现部分?FirebaseDatabase –

+0

您是否按照文档说明设置了Gradle?你在使用Android Studio吗? – Si8

+0

@ Si8是的,我正在使用Android Studio。我已更新我的问题以包含gradle文件 – Anant

回答

2

问题是,每个应用程序的味道都需要它自己的google-services.json文件

所以我将它们添加到每个falvor的模块文件夹中。

希望这可以帮助未来的人!

+0

我看到你想出了这个问题...伟大:) – Si8

+0

@ Si8感谢您的帮助! – Anant

+0

嘿!我被困在一些靠近的地方。你能详细说明你做了什么吗?如果需要,我可以分享我的代码。 –

3

我会建议检查Firebase Authentication并从项目设置在Firebase Console下载谷歌-services.json

我会建议尝试使用上述解决方案。我希望它能起作用。

+0

是的,我也从项目设置下载了google-service.json。似乎没有工作 – Anant

+1

您是否检查过Firebase数据库身份验证权限? –

+0

是的,我设置为true – Anant

4

请创建火力地堡的项目,然后用适当的包名称添加应用程序,把下载的JSON文件在您的应用程序:

我认为当前的文件没有

"project_info": { 
    "project_number": "566986018979", 
    "firebase_url": "https://test-fcm-17958.firebaseio.com", 
    "project_id": "test-fcm-17958", 
    "storage_bucket": "test-fcm-17958.appspot.com" 

    } 

火力地堡网址就意味着没“T添加任何应用上还可能有b在项目配置一些问题

而且先用默认的基准试
mDatabase = FirebaseDatabase.getInstance().getReference();

+0

是的,我的google-services.json文件确实有这些 – Anant

+0

没有添加任何应用程序 - 请你解释一下吗? – Anant