마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 Firebase 질문!!!

0 추천
Firebase DB 에서 데이터를 받아서 -> Adapter -> recyclerView 로 보여주고 있는데요,

 

예를 들어 DB내에 이런식으로 저장이 되어있을때,

 

test_chat
         -TAEK
               -KpAk9snThbMZWmMCFpo
                     - msg:  얍
                     - name:  사자

               -KpAk9snThbMZWmMCFpo
                     - msg:  얍
                     - name:  호랑이

 

이 상태에서 제가 "토끼"를 입력하고 입력한 데이터를 DB에 저장한 후,

 

데이터를 addChildEventListener 로 통해 읽어들였을때,

 

recyclerView 에는

 

얍 : 사자

 

얍 : 호랑이

 

얍: 토끼

 

처럼 DB내에 이미 저장되어있는 다른 데이터들 까지 같이 읽게되는데요,

 

제 코드는

 

 public void start_random_chat() {

        mDatabase = FirebaseDatabase.getInstance().getReference("test_chat");
        final DatabaseReference data = mDatabase;

 

        Map<String, Object> map2 = new HashMap<String, Object>();

    

        map2.put("name", value);
        map2.put("msg", input_msg.getText().toString());

      

        data.child(random_user).push().updateChildren(map2); <- 값 저장

        items = new ArrayList<>();
        adt = new AdapterActivity(RandomChatActivityTwo.this,items,R.layout.activity_random_two);

        RecyclerView recyclerView=(RecyclerView)findViewById(R.id.activity_recycler);
        LinearLayoutManager layoutManager=new LinearLayoutManager(RandomChatActivityTwo.this);
        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(layoutManager);
        recyclerView.setAdapter(adt);

 
        data.child(random_user).addChildEventListener(new ChildEventListener() {

            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {

                user_chat(dataSnapshot);
            }

            @Override
            public void onChildChanged(DataSnapshot dataSnapshot, String s) {

                user_chat(dataSnapshot);
            }

            @Override
            public void onChildRemoved(DataSnapshot dataSnapshot) {

            }

            @Override
            public void onChildMoved(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }

        });

    }

이런 식으로 되어있습니다. 제가 입력한 데이터만 받을려고 위에 밑줄 친 부분을

 

  data.child(random_user).push().addChildEventListener(new ChildEventListener() {.......}

 

이런식으로 읽을려고 했는데, 아예 실행조차도 안됩니다;

 

어떻게 하면 DB에 있는 내용은 제외하고 제가 입력한 데이터만 받아서 올 수 있을까요???

 

답변 부탁드립니다!!
알파고 (4,320 포인트) 님이 2017년 7월 16일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...