Не могу получить CarType при попытке получить из FirebaseDatabse - PullRequest
0 голосов
/ 22 сентября 2018

Я получаю следующую ошибку, когда пытаюсь запустить приложение, когда очищаю кеш своего приложения, оно работает нормально, но когда я закрываю его и запускаю снова, происходит сбой

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

при попытке получитьтекущий тип карты из Firebasedatabse.

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;
    }
   }

1 Ответ

0 голосов
/ 23 сентября 2018

Здесь:

child(Common.currentBusDriver.getCarType());

Вы фактически получаете getCarType() нулевого объекта, который в данный момент не получен от Firebase, поэтому он показывает нулевую ошибку.

Вместо этого,получить такие узлы, как:

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

Затем переберите выходной сигнал слушателя в onDataChange(), и вы сможете получить данные.

Проверьте этот фрагмент кода Пример Firebase .А потом, Слушатель .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...