다음 목록에서 항목을 삭제하려고합니다. 그러나 키를 잡으려고 할 때 사용자 ID 키는 NsShnb2enJcYEkfeE2fiSzbDc6O2
입니다. 하지만 각 게시물의 핵심을 잡고 싶습니다. 예를 들어 사용자가 목록의 첫 번째 항목을 클릭하면 키를 가져와야합니다. KSGhFSZg....
Firebase 데이터베이스에서 항목 삭제
비슷한 질문에 대한 답변은 많이 있지만 여기서는 데이터베이스 구조가 매우 다릅니다. 여기
코드, 내가 사용했다. 사전에mAdapter = new FirebaseRecyclerAdapter<Note, FirebaseNoteViewHolder>(Note.class, R.layout.item_note, FirebaseNoteViewHolder.class, mRef) {
@Override
public void populateViewHolder(FirebaseNoteViewHolder noteMessageViewHolder, final Note noteMessage, final int position) {
noteMessageViewHolder.setTitle(noteMessage.getTitle());
noteMessageViewHolder.setUpdatedDate(DateFormat.getInstance().format(noteMessage.getDataModified()));
noteMessageViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Toast.makeText(getActivity(), noteMessage.getDataModified().toString(), Toast.LENGTH_LONG).show();
databaseReference.orderByChild("dataModified").equalTo(noteMessage.getDataModified().toString()).addListenerForSingleValueEvent(
new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String key = dataSnapshot.getKey();
Toast.makeText(getActivity(), key, Toast.LENGTH_LONG).show();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
});
}
};
감사합니다!
databaseReference.orderByChild("dataModified").equalTo(noteMessage.getDataModified().toString()).addListenerForSingleValueEvent(
new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String key = dataSnapshot.getKey();
int positionCount=0;
for(DataSnapshot note : dataSnapshot.getChildren()){
if(positionCount==position){
firebase.child("notes").child(key).child(note .getKey()).removeValue();
Toast.makeText(getActivity(), note.getKey(), Toast.LENGTH_LONG).show();
}
positionCount++;
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
lstOfertas.add (bid) 란 무엇입니까? 하기? – Isuru
죄송합니다. 복사 된 코드입니다. 나는 그것을 편집 할 것이다. 시도해 봤어? –