firebase Database 데이터 삭제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
Query query =databaseReference.child("message").orderByChild("userName").equalTo(editTextName.getText().toString());
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot ds:dataSnapshot.getChildren()){
Log.d("getKey",ds.getRef().toString());
ds.getRef().removeValue();
//Toast.makeText(MainActivity.this, dataSnapshot.getKey().toString(), Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
| cs |
equalTo를 이용하여 userName값이 "temp"인지 확인합니다.
snapshot은 말 그대로 한 순간이죠. 여기엔 쿼리(위에서 언급한 equalTo..)에 맞는 특정 데이터 값이 들어있습니다.
꼭 dataSnapshot.getChildren() 를 하고서 참조로 접근해야 합니다.
그냥 참조로 냅다 접근해서 삭제하면 Tree 방식으로 이루어져 있기 때문에 전부 삭제될 수 있습니다.