Android GeoFire Firebase Удалить ссылку на пользователя - PullRequest
0 голосов
/ 19 марта 2020

Итак, я создаю приложение, и в настоящее время все, что я делаю, пытается добавить и удалить пользователей из Firebase.

Я пытаюсь различить guish, когда пользователь доступен, а когда нет.

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

                lastLocation = location;

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

                String UserID = FirebaseAuth.getInstance().getCurrentUser().getUid();
                DatabaseReference refAvailable = FirebaseDatabase.getInstance().getReference("TradesmanAvailable");
                // DatabaseReference refWorking = FirebaseDatabase.getInstance().getReference("driversWorking");

                GeoFire geoFire = new GeoFire(refAvailable);
                //geoFire.setLocation(UserID, new GeoLocation(location.getLatitude(), location.getLongitude()));

                geoFire.setLocation(UserID, new GeoLocation(location.getLatitude(), location.getLongitude()), new GeoFire.CompletionListener() {
                    @Override
                    public void onComplete(String key, DatabaseError error) {

                    }
                });


            }
        }
    }
};

Итак, в этом фрагменте я добавляю пользователя в Firebase с помощью GeoFire, он отлично отображается в базе данных и работает. Однако моя проблема заключается в том, чтобы затем удалить их, когда они выходят из системы / выход / onStop.

@Override
protected void onStop() {
    super.onStop();

    if (FusedLocationClient != null)
        FusedLocationClient.removeLocationUpdates(locationCallback);

    String UserID = FirebaseAuth.getInstance().getCurrentUser().getUid();
    DatabaseReference ref = FirebaseDatabase.getInstance().getReference("TradesmanAvailable");
    GeoFire geoFire = new GeoFire(ref);
    geoFire.removeLocation(UserID, new GeoFire.CompletionListener () {
        @Override
        public void onComplete(String key, DatabaseError error) {
        }
    });
}

Здесь я пытаюсь удалить их, я пробовал это без оператора 'if' и без GeoFire.CompletionListener, но, похоже, ни один способ не работает: (

...