尝试从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 中获取单个记录