【问题标题】:Firebase database getInstance crashes appFirebase 数据库 getInstance 使应用程序崩溃
【发布时间】:2016-09-18 17:29:02
【问题描述】:

在创建 google-service.json 后运行示例时,应用程序在尝试在 SignInActivity 中获取数据库引用时崩溃

mDatabase = FirebaseDatabase.getInstance().getReference();

崩溃日志

05-21 09:27:27.644 488-488/com.google.firebase.quickstart.database D/AndroidRuntime: Shutting down VM
05-21 09:27:27.644 488-488/com.google.firebase.quickstart.database E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                     Process: com.google.firebase.quickstart.database, PID: 488
                                                                                     java.lang.RuntimeException: Unable to start activity ComponentInfo{com.google.firebase.quickstart.database/com.google.firebase.quickstart.database.SignInActivity}: com.google.firebase.database.DatabaseException: Failed to get 

FirebaseDatabase instance: FirebaseApp object has no DatabaseURL in its FirebaseOptions object.
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
     at android.app.ActivityThread.access$800(ActivityThread.java:151)
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
     at android.os.Handler.dispatchMessage(Handler.java:102)
     at android.os.Looper.loop(Looper.java:135)
     at android.app.ActivityThread.main(ActivityThread.java:5254)
     at java.lang.reflect.Method.invoke(Native Method)
     at java.lang.reflect.Method.invoke(Method.java:372)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
  Caused by: com.google.firebase.database.DatabaseException: Failed to get FirebaseDatabase instance: FirebaseApp object has no DatabaseURL in its FirebaseOptions object.
     at com.google.firebase.database.FirebaseDatabase.getInstance(Unknown Source)
     at com.google.firebase.database.FirebaseDatabase.getInstance(Unknown Source)
     at com.google.firebase.quickstart.database.SignInActivity.onCreate(SignInActivity.java:39)
     at android.app.Activity.performCreate(Activity.java:5990)
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
     at android.app.ActivityThread.access$800(ActivityThread.java:151) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:135) 
     at android.app.ActivityThread.main(ActivityThread.java:5254) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:372) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

如何解决这个问题?

【问题讨论】:

  • 检查 google-service.json 是否包含您数据库的 url。
  • @GabrieleMariotti googl-services.json 生成链接 developers.google.com/mobile/add 似乎没有做任何与 firebase 相关的事情
  • 在文件中你应该有类似的东西:"project_info": { "project_number": "xxxxxxx", "firebase_url": "https://yourname-xxx.firebaseio.com",....
  • @GabrieleMariotti 谢谢你指出我正确的方向。我从 developer.google.com/mobile/add 而不是 firebase 项目下载了错误的 google-services.json 文件。

标签: firebase sample firebase-realtime-database


【解决方案1】:

更改 google-services.json 文件对我不起作用 后来我发现 我正在使用的 实施 'com.google.firebase:firebase-analytics:17.5.0' 实施 'com.google.firebase:firebase-database:16.0.4' 代替 实施 'com.google.firebase:firebase-analytics-ktx:17.5.0' 实施 'com.google.firebase:firebase-database-ktx:19.4.0'

【讨论】:

    【解决方案2】:

    mFirebaseDatabaseReference = database.getInstance().getReference("root-element in firebase");

    当您拨打getReference 时,您需要提供一个网址。如果您的项目已在 Firebase 中与您创建的数据库绑定,请使用 Firebase 中数据的根元素作为 getReference() 的参数。

    【讨论】:

      【解决方案3】:

      Firebase console 中的项目设置 下载google-services.json。我的错误是从https://developers.google.com/mobile/add 下载的。

      【讨论】:

      • 你是怎么解决这个问题的?我在这件事上浪费了很多时间。尝试重新下载 google-service.json 无济于事
      • 您可能在下载 google-services.json 后启用了数据库。然后从 Firebase 站点 (console.firebase.google.com) 再次下载它
      猜你喜欢
      • 2018-12-16
      • 2017-03-26
      • 2016-12-08
      • 2018-12-30
      • 1970-01-01
      • 1970-01-01
      • 2014-12-30
      • 1970-01-01
      • 2017-03-26
      相关资源
      最近更新 更多