希望在一个小问题上寻求帮助:
我正在尝试通过Android应用程序删除存储在Firebase数据库中的单个记录。
目前,当点击删除按钮时,所有项目将被删除,而不是我点击的单个记录。
为了完整起见,我还包含了我的updateMaintenance
方法,该方法非常有效。正如您将在updateMaintenance
方法中看到的那样,我在mAuth.getCurrentUser()
中使用了基于用户的身份验证 - 我也希望在我的deleteMaintenance
方法中使用此身份验证。
我确信这只是添加一小段代码的情况,但不太确定从哪里开始。提前谢谢!
private void deleteMaintenance(String maintenanceId) {
DatabaseReference drMaintenance = FirebaseDatabase.getInstance().getReference("maintenance").child(maintenanceId);
FirebaseUser user = mAuth.getCurrentUser();
String uid = user.getUid();
databaseMaintenance.child(uid).removeValue();
Toast.makeText(this, "Maintenance record has been deleted", Toast.LENGTH_LONG).show();
}
private boolean updateMaintenance(String title, String desc, String id, String primary, String secondary, String property) {
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("maintenance").child(id);
Maintenance maintenance = new Maintenance (id, title, desc, primary, secondary, property);
FirebaseUser user = mAuth.getCurrentUser();
String uid = user.getUid();
databaseMaintenance.child(uid).child(id).setValue(maintenance);
databaseReference.setValue(maintenance);
Toast.makeText(this, "Maintenance Updated Updated Successfully", Toast.LENGTH_LONG).show();
return true;
}
答案 0 :(得分:0)
这种情况正在发生,因为使用以下代码行时:
maintenance
您正在删除uid
下面的所有内容 - > uid
节点。所以基本上你要删除DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
rootRef.child("maintenance").child(uid).child(maintenanceId).removeValue();
节点。
要实现您想要的效果,您需要更改参考。所以请用以下代码更改上面的代码:
<br>