【发布时间】:2020-11-15 11:03:02
【问题描述】:
我希望在单击 item1 上的按钮时删除 item1 的数据。
但是mDatabase.getReference("Choicestore").child(String.valueOf(arrayList.get(position)));
我不知道如何处理这部分。
我希望在单击 item1 上的按钮时删除 item1 的数据。我希望在单击 item2 上的按钮时删除 item2 的数据。
@Override
public void onBindViewHolder(@NonNull final ChoicestoreViewHolder holder, final int position) {
Glide.with(holder.itemView)
.load(arrayList.get(position).getChoicestore_img())
.into(holder.choicestore_img);
holder.choicestore_name.setText("storename : " + arrayList.get(position).getChoicestore_name());
holder.choicestore_time.setText("opentime : " + arrayList.get(position).getChoicestore_time());
holder.choicestore_breaktime.setText("breaktime : " +arrayList.get(position).getChoicestore_breaktime());
holder.choicestore_number.setText("storenumber : " + arrayList.get(position).getChoicestore_number());
holder.choicestore_delete.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
mDatabase = FirebaseDatabase.getInstance();
dataRef = mDatabase.getReference("Choicestore").child(String.valueOf(arrayList.get(position)));
dataRef.removeValue();
}
});
}
我使用以下答案进行编码,但出现此错误。
@Override
public void onBindViewHolder(@NonNull final ChoicestoreViewHolder holder, final int position) {
Glide.with(holder.itemView)
.load(arrayList.get(position).getChoicestore_img())
.into(holder.choicestore_img);
holder.choicestore_name.setText("매장명 : " + arrayList.get(position).getChoicestore_name());
holder.choicestore_time.setText("운영시간 : " + arrayList.get(position).getChoicestore_time());
holder.choicestore_breaktime.setText("브레이크타임 : " +arrayList.get(position).getChoicestore_breaktime());
holder.choicestore_number.setText("매장번호 : " + arrayList.get(position).getChoicestore_number());
holder.choicestore_delete.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
final String NAme= arrayList.get(position).getChoicestore_name();
dataRef.orderByChild("choicestore_name")
.equalTo( NAme )
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
String clubkey = childSnapshot.getKey();
Log.d(TAG, "KEY = " + clubkey );
childSnapshot.getRef().removeValue();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
});
}
这是发生错误的代码。
【问题讨论】:
-
链接的图像是数据库图像,我希望在单击 item1 上的按钮时删除choicestore01 的数据。我希望在单击 item2 上的按钮时删除choicestore02 的数据。
-
使用
addListenerForSingleValueEvent获取密钥。在您的情况下,键表示choicestore01,然后删除该节点 -
在onClick方法中添加这一行
dataRef = FirebaseDatabase.getInstance().getReference( "Choicestore" ); -
感谢您的帮助。它工作正常。谢谢你!!
标签: android firebase-realtime-database android-recyclerview