2016-09-22 22 views
0

次のリストからアイテムを削除しようとしています。しかし、鍵をつかむと、ユーザIDの鍵はNsShnb2enJcYEkfeE2fiSzbDc6O2です。しかし、私は各投稿の鍵をつかみたい。たとえば、ユーザーがリスト内の最初の項目をクリックすると、キーを取得する必要があります。KSGhFSZg....Firebaseデータベースからアイテムを削除

類似の質問に対する回答はたくさんありますが、データベースの構造はかなり異なります。ここで

enter image description here

はコードですが、私は使用していました。事前に

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) { 

          } 
         }); 
      } 
     }); 
    } 
}; 

enter image description here

ありがとう!

答えて

1

あなたが試すことができますので、あなたは親キーを取得している:

 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) { 

       } 
    }); 
+0

lstOfertas.add(bid)とは何ですか?やっている? – Isuru

+0

申し訳ありません。私はそれを編集します。やってみました? –

0

あなたの要求へのフルパスを与えるために、あなたがしなければならないあなたのキーを取得するため。あなたの場合

databaseReference.child("notes" + "/" + yourUserId).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) { 

         } 
        }); 
関連する問題