【问题标题】:String userID = FirebaseAuth.getInstance().getCurrentUser().getUid(); (getUid give null pointer exception [duplicate]字符串用户 ID = FirebaseAuth.getInstance().getCurrentUser().getUid(); (getUid 给出空指针异常 [重复]
【发布时间】:2019-06-19 18:16:58
【问题描述】:

“我正在设置一个地图活动,在该活动中我可以在实时数据库火力基地中获得更新的位置,但不显示火力基地中的位置。当我登录我的应用程序时,驱动程序地图活动打开并且应用程序崩溃。我看到日志猫错误显示空指针异常。

error on first line getUid() 

( 168 line  no)    
private void DisconnectTheDriver() {

    String userID = FirebaseAuth.getInstance().getCurrentUser().getUid();
    DatabaseReference DriverAvailibiltyRef = FirebaseDatabase.getInstance().getReference().child("Drivers Available");

    GeoFire geoFire = new GeoFire(DriverAvailibiltyRef);

(175 line no)        geoFire.removeLocation(userID);


}

在日志中

 at android.os.Handler.dispatchMessage(Handler.java:105)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6942)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
 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.example.uolbuses.DriverMapActivity.DisconnectTheDriver(DriverMapActivity.java:275)
    at com.example.uolbuses.DriverMapActivity.onStop(DriverMapActivity.java:268)
    at android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1382)
    at android.app.Activity.performStop(Activity.java:7452)
    at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:4238)
    at android.app.ActivityThread.handleStopActivity(ActivityThread.java:4290) 
    at android.app.ActivityThread.-wrap25(Unknown Source:0) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1730) 
    at android.os.Handler.dispatchMessage(Handler.java:105) 
    at android.os.Looper.loop(Looper.java:164) 
    at android.app.ActivityThread.main(ActivityThread.java:6942) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374) 

【问题讨论】:

    标签: java android firebase firebase-realtime-database nullpointerexception


    【解决方案1】:

    一个可能的原因是您正在访问一个未定义用户 ID 的页面。如果您的应用程序中有登录功能,那么我建议您沿着这条路走,然后到达这里。

    访问此页面后,使用调试器查看 uid 的值。

    我在这里假设了很多东西,如果您能提供有关工作流程的更多见解,那将很有帮助

    一个小代码 sn-p 以防你错过了这个

    import com.google.firebase.auth.FirebaseAuth;
    ...
    ...
    
    if (FirebaseAuth.getInstance().getCurrentUser() == null) {
        //Go to login 
    }
    else{
        String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-07
      • 2018-11-05
      • 1970-01-01
      • 2017-10-24
      • 2014-04-11
      • 1970-01-01
      • 2016-07-28
      • 2014-09-06
      相关资源
      最近更新 更多