尝试从Firebase数据库获取时无法获取CarType

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了尝试从Firebase数据库获取时无法获取CarType相关的知识,希望对你有一定的参考价值。

当我清除我的应用程序缓存时,当我尝试运行应用程序时,我收到以下错误它工作正常但是当我关闭它并再次运行它崩溃

Attempt to invoke virtual method 'java.lang.String com.ggsbusiness.amirmemon.comsatsbusservice.Model.ComsatsDriver.getCarType()' on a null object reference

当试图从Firebasedatabse获取当前的cartype时。

drivers = FirebaseDatabase.getInstance().getReference(Common.driver_tbl).child(Common.currentBusDriver.getCarType());

来自Common.class

public class Common {

    public static final String driver_tbl = "Drivers";
    public static final String user_driver_tbl = "DriversInformation";
    public static final String user_rider_tbl = "RidersInformation";
    public static final String pickup_request_tbl = "PickupRequest";


    public static final String baseURL = "https://maps.googleapis.com";
    public static ComsatsDriver currentBusDriver;

    public static IGoogleAPI getGoogleAPI()
    {
        return RetrofitClient.getClient(baseURL).create(IGoogleAPI.class);
    }
}

这是ComsatsDriver.class:

public class ComsatsDriver {
    private String name,phone,carType;

    public ComsatsDriver(){
    }

    public ComsatsDriver(String name, String phone, String carType) {
        this.name = name;
        this.phone = phone;
        this.carType = carType;
    }


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getCarType() {
        return carType;
    }

    public void setCarType(String carType) {
        this.carType = carType;
    }
   }
答案

这里:

child(Common.currentBusDriver.getCarType());

您实际上正在获取null对象的getCarType(),它当前未从Firebase接收,这就是它显示null错误的原因。

相反,获取如下节点:

drivers = FirebaseDatabase.getInstance().getReference(Common.driver_tbl).child("CurrentBusDriverNode"); // Or whatever your json output node is

然后在onDataChange()中循环监听器的输出,然后你就能获得数据。

检查Firebase sample的这段代码。然后,the Listener

以上是关于尝试从Firebase数据库获取时无法获取CarType的主要内容,如果未能解决你的问题,请参考以下文章

无法从 firebase 回收器视图中的 firebase 实时数据库中获取嵌套数据

无法从 firebase 查询 Flutter 中获取单个记录

Future<int> 无法从 Firebase 获取数据

无法从Firebase获取价值

无法使用 Swift 5 (iOS) 从 Firebase 数据库中获取和打印单个值

如何从firebase Android kotlin获取基于userId的数据?