Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 应用内删除Firebase记录_Java_Android_Firebase - Fatal编程技术网

Java 应用内删除Firebase记录

Java 应用内删除Firebase记录,java,android,firebase,Java,Android,Firebase,希望在一个小问题上得到帮助: 我试图通过Android应用程序删除Firebase数据库中存储的单一记录 目前,当单击delete按钮时,所有项目都被删除,而不是我单击的单个记录 为了完整起见,我还包括了我的updateMaintenance方法,该方法非常有效。正如您将在updateMaintenance方法中看到的,我在mAuth.getCurrentUser()中使用了基于用户的身份验证-我希望在deleteMaintenance方法中也使用此身份验证 我相信这只是一个添加一点点代码的例子

希望在一个小问题上得到帮助:

我试图通过Android应用程序删除Firebase数据库中存储的单一记录

目前,当单击delete按钮时,所有项目都被删除,而不是我单击的单个记录

为了完整起见,我还包括了我的
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;
}

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

databaseMaintenance.child(uid).removeValue();
您正在删除
maintenance
->
uid
节点下的所有内容。因此,基本上您正在删除
uid
节点

要实现您想要的,您需要更改引用。因此,请将上述代码行更改为:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
rootRef.child("maintenance").child(uid).child(maintenanceId).removeValue();

你想删除的记录是什么?所以现在,当我长时间点击时,我可以选择删除或更新我点击的记录。好的。。。但我不知道如何删除一条记录。您能解释一下吗?dnt knw您正在删除的记录,但我的意思是您可以再深入一步:
databaseMaintenance.child(uid).child(id).removeValue()这将删除子记录。请添加您的数据库结构,并向我们突出显示您要删除的确切记录。