Я пытаюсь удалить местоположение пользователя из базы данных Firebase, но он не удаляет ключ при вызове
Этот код находится в службе.
geofire.removeLocation(uniqueID);
Уникальный идентификатор генерируется какthis
static String uniqueID = UUID.randomUUID().toString();;
LocationCallBack для отправки Location в базу данных Firebase
LocationCallback mLocationRequestCallback = new LocationCallback(){
@Override
public void onLocationResult(LocationResult locationResult) {
for(Location location : locationResult.getLocations()){
mLastLocation = location;
DatabaseReference userRef = FirebaseDatabase.getInstance().getReference().child("usersAvailable").child("Users");
GeoFire geoFire = new GeoFire(userRef);
geoFire.setLocation(uniqueID,new GeoLocation(mLastLocation.getLongitude(),mLastLocation.getLatitude()));
Log.d(TAG,uniqueID);
}
}
};
Я попытался жестко запрограммировать ключ, и он не работает.Я добавил в завершение прослушиватель, чтобы проверить, удаляет ли он, и завершает ли прослушиватель процессы, но все еще не удаляет ключ.
@Override
public void onDestroy() {
super.onDestroy();
mFusedLocationClient.removeLocationUpdates(mLocationRequestCallback);
wakeLock.release();
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("userAvailable").child("Users");
GeoFire geoFire = new GeoFire(ref);
geoFire.removeLocation(uniqueID, new GeoFire.CompletionListener() {
@Override
public void onComplete(String key, DatabaseError error) {
Log.d(TAG, "Removed Location Successfully: "+uniqueID);
Log.e(TAG,key+"\n"+error);
}
});
}
Журнал
D/GeoJobService: Removed Location Successfully: 63825afd-7710-4cd7-b799-7be049281862
E/GeoJobService: 63825afd-7710-4cd7-b799-7be049281862
null
Что я делаю неправильно,Я не могу найти другие сообщения, которые мне помогают.
Редактировать
Я добавил это, и до сих пор не удалил ключ в Базе данных.
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("userAvailable").child("Users");
ref.child(uniqueID).removeValue();