问题描述
我想在我的项目中进行“滑动删除”。但是每当我滑动删除它时,它都不会在 firebase 中删除,并且会使相同的数据再次出现在应用程序中,因为 in 不会在 firebase 中删除。我该如何解决这个问题?
这是我的代码。
@Override
public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder,int direction) {
int position = viewHolder.getAdapterPosition();
switch (direction){
case itemtouchhelper.LEFT:
viewApplicationDataList.remove(position);
adapter.notifyItemRemoved(position);
dbApplication.child("LIST OF FORM").child(String.valueOf(position)).equals(null);
break;
}
if (direction == itemtouchhelper.LEFT){
Toast.makeText(ViewApplicationActivity.this,"Deleting",Toast.LENGTH_SHORT).show();
}
}
解决方法
您需要调用“remove”函数来移除一个值。 在您的代码中,您实际做的是将另一个数据写入您的 Firebase 所以代替
dbApplication.child("LIST OF FORM").child(String.valueOf(position)).equals(null);
做
dbApplication.child("LIST OF FORM").child(String.valueOf(position)).removeValue();
这样你就会从你的数据库中删除那个值。
编辑
因为您没有在评论中回答我的问题,所以我将大致解释如何从 firebase 中删除值。
当您访问“表单列表”的子注释时,您必须访问正确的子节点(也就是从您的图片中获取的 firebase id),然后使用 removeValue() 函数。 意思
dbApplication.child("LIST OF FORM").child(*uniqueID*).removeValue()
*uniqueID = 当您输入该值或您使用的值时,firebase 自动生成的 ID 因此,为了让您更了解删除您在屏幕截图中发布的内容,查询需要像这样
dbApplication.child("LIST OF FORM").child("-MbVVxjqTitBwuLo5DyL").removeValue();
“-MbVVxjqTitBwuLo5DyL”是您要移除的孩子。 如果您不在代码中的任何位置访问该值,您将无法从数据库中删除该值。