2017-04-22 1 views
1

나는 recyclerView를 사용하고 있으며, 각 행은 주식을 나타내고 Firebase accout에 연결되어 있으며, 사용자가 생성 될 때마다 Firebase 데이터베이스에 추가합니다 내 Firebase 계정에 등록), 각 사용자는 "user_stocks"(자식) 필드를 가지고 있으며 내 주식 목록의 행을 삭제하는 longClickListener를 만들었습니다. 문제는 사용자 계정에서도이 주식을 삭제해야한다는 것입니다. Firebase 데이터베이스에서 필드 삭제 (안드로이드)

public void deleteFromFirebase(String user_id) { 
     FirebaseDatabase database = FirebaseDatabase.getInstance(); 
     DatabaseReference myRef = database.getReference("users").child(user_id); 

     myRef.addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       User user = dataSnapshot.getValue(User.class); 
       //No metter what i did, it did not delete from fb 
      } 

    @Override 
    public void onCancelled(DatabaseError error) { 
     // Failed to read value 
    } 
}); 
} 

수 :

나는 중포 기지 데이터베이스에서 주식을 삭제하는 방법을 찾을 수 없습니다 나에게 올바른 방향을 가르쳐 주시겠습니까? 감사합니다.

답변

1

그냥 값으로 그 아이에 널 배치

FirebaseDatabase.getInstance().getReference("users").child(user_id).setValue(null); 

업데이트

이 작업을 나던

public void deleteFromFirebase(String user_id,final String stockName) { 
     FirebaseDatabase database = FirebaseDatabase.getInstance(); 
     DatabaseReference myRef = database.getReference("users").child(user_id).child("user_stocks"); 

     myRef.addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       for (DataSnapshot stock : dataSnapshot.getChildren()) { 
       if(stock.getValue().equals(stockName)) 
        stock.getRef().removeValue(); 
       } 
      } 

    @Override 
    public void onCancelled(DatabaseError error) { 
     // Failed to read value 
    } 
}); 
} 
+0

값, 또한 항목을 삭제 것이다하거나 변경에 의해 삭제 값이 null입니까? – Coder123

+0

@ Coder123 항목을 삭제합니다. – pantos27

+0

@ Coder123 또한 청취자는 값이 변경 될 때마다 한 번만 작동합니다. 실제 값이 firebase 콘솔을 확인하십시오 – pantos27

관련 문제