应用内删除Firebase记录

时间:2018-03-29 15:27:51

标签: java android firebase

希望在一个小问题上寻求帮助:

我正在尝试通过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;
}

DB Structure

1 个答案:

答案 0 :(得分:0)

这种情况正在发生,因为使用以下代码行时:

maintenance

您正在删除uid下面的所有内容 - > uid节点。所以基本上你要删除DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); rootRef.child("maintenance").child(uid).child(maintenanceId).removeValue(); 节点。

要实现您想要的效果,您需要更改参考。所以请用以下代码更改上面的代码:

<br>