删除了Firebase数据库和应用程序崩溃

时间:2018-02-21 03:59:28

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

我从我的数据库中删除了一些“表”我认为它们将在用户首次登录后自动创建。但现在我的应用程序如果充满空指针异常。解决这个问题的更好方法是什么?

这是代码

mUserDatabase = FirebaseDatabase.getInstance().getReference()
            .child("Users").child(mAuth.getCurrentUser().getUid());

这是错误

 java.lang.RuntimeException: Unable to create application com.borisruzanov.russianwives.App: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.google.firebase.auth.FirebaseUser.getUid()' on a null object reference
                  at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5406)
                  at android.app.ActivityThread.-wrap2(ActivityThread.java)
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1545)
                  at android.os.Handler.dispatchMessage(Handler.java:102)
                  at android.os.Looper.loop(Looper.java:154)
                  at android.app.ActivityThread.main(ActivityThread.java:6119)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
               Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.google.firebase.auth.FirebaseUser.getUid()' on a null object reference
                  at com.borisruzanov.russianwives.App.onCreate(App.java:34)
                  at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1024)
                  at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5403)
                  at android.app.ActivityThread.-wrap2(ActivityThread.java) 
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1545) 
                  at android.os.Handler.dispatchMessage(Handler.java:102) 
                  at android.os.Looper.loop(Looper.java:154) 
                  at android.app.ActivityThread.main(ActivityThread.java:6119) 
                  at java.lang.reflect.Method.invoke(Native Method) 
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 

1 个答案:

答案 0 :(得分:1)

错误信息是:

  

java.lang.NullPointerException:尝试调用虚拟方法&java; .lang.Su。在空对象引用上

这意味着您对mAuth.getCurrentUser()的调用返回null。这意味着在方法调用时没有人登录到您的应用程序。这可能与您在数据库中执行的任何类型的数据重组无关。如果您知道某个用户已登录,请确保只调用getCurrentUser(),或者将其检查为null,以便您可以选择不调用该空的方法。