Итак, я создаю приложение, и в настоящее время все, что я делаю, пытается добавить и удалить пользователей из 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, но, похоже, ни один способ не работает: (