我正在尝试从Firebase数据库中删除用户位置,但在我致电时不会删除密钥
此代码在服务中。
geofire.removeLocation(uniqueID);
UniqueId是这样生成的
static String uniqueID = UUID.randomUUID().toString();;
LocationCallBack将位置发送到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();