onLocationResult не вызывается - PullRequest
0 голосов
/ 26 января 2020

Я следую учебному пособию, в котором я разрабатываю такое приложение, как Uber. Когда кто-либо входит в приложение в качестве дайвера, должен вызываться метод onLocationResult, и в этом методе запись для драйвера помещается в таблицу Firebase с именем DriversAvailable. По какой-то причине эта таблица не создается в моей БД, и я почти уверен, что это так, потому что метод onLocationResult не вызывается. В моем методе onLocationResult есть переменная на переменную с именем customerID, если она пуста, тогда местоположение драйвера помещается в таблицу DriversAvailable. customerID будет пустым, пока клиент не войдет в систему и не нажмет «кнопку вызова Uber», поэтому, когда я тестирую это с двумя телефонами и регистрируюсь как драйвер, я должен видеть запись в DriversAvailable с указанием местоположения драйвера как ребенка.

 LocationCallback Callback = new LocationCallback(){
        @Override
        public void onLocationResult(LocationResult locationResult) {
            for(Location location : locationResult.getLocations()){
                if(getApplicationContext()!=null){

                    if(!customerID.equals("") && mLastLocation!=null && location != null){
                        rideDistance += mLastLocation.distanceTo(location)/1000;
                    }
                    mLastLocation = location;


                    LatLng latLng = new LatLng(location.getLatitude(),location.getLongitude());
                    mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
                    mMap.animateCamera(CameraUpdateFactory.zoomTo(11));

                    String userId = FirebaseAuth.getInstance().getCurrentUser().getUid();
                    DatabaseReference refAvailable = FirebaseDatabase.getInstance().getReference("DriversAvailable");
                    DatabaseReference refWorking = FirebaseDatabase.getInstance().getReference("DriversWorking");
                    GeoFire geoFireAvailable = new GeoFire(refAvailable);
                    GeoFire geoFireWorking = new GeoFire(refWorking);

                    switch (customerID){
                        case "":
                            geoFireWorking.removeLocation(userId);
                            geoFireAvailable.setLocation(userId, new GeoLocation(location.getLatitude(), location.getLongitude()));
                            break;

                        default:
                            geoFireAvailable.removeLocation(userId);
                            geoFireWorking.setLocation(userId, new GeoLocation(location.getLatitude(), location.getLongitude()));
                            break;
                    }
                }
            }
        }
    };

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