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

안드로이드 자바 파이어베이스 질문드립니다.

0 추천
이해가 안가는 부분이 있어서 이렇게 질문드립니다.

 

prvate String value = "Taek";

 

--------------------코드 중 일부 ---------------------------

 

    data.addListenerForSingleValueEvent(new ValueEventListener() {

            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                long allNum = dataSnapshot.getChildrenCount();
                int maxNum = (int) allNum;
                int minNum = 0;
                int count = 0;

                Iterable<DataSnapshot> ds = dataSnapshot.getChildren();

                Iterator<DataSnapshot> ids = ds.iterator();

                ArrayList<String> list = new ArrayList<String>();

                while (ids.hasNext() && count < maxNum) {

                    Toast.makeText(RandomChatActivityUser.this, "유저검색중...", Toast.LENGTH_SHORT).show();

                    db_user = (String) ids.next().getValue();

                    if(db_user == value)  

                       < ---- 이 부분인데요. 제가 Firebase db에 변수 value를 저장했고, 제 예상대로라면

                                  이 if문에서 true 영역이 실행이 되어야 했는데; 결과는 false 영역이 실행이되버리네요
                    {
                        Toast.makeText(RandomChatActivityUser.this, "유저검색중...(2)", Toast.LENGTH_SHORT).show();

                        Toast.makeText(RandomChatActivityUser.this, db_user,  Toast.LENGTH_SHORT).show();

  <-- 여기서 Toast로 db_user를 호출해보았는데 역시나 value와 같은 값이였습니다.

 

                        list.add(db_user);

                        count++;
                    }
                    else
                    {
                        Toast.makeText(RandomChatActivityUser.this, "유저없음", Toast.LENGTH_SHORT).show();  <-- 왜 db에서 가져온 값과 value가 같음에도 불구하고 이 부분이 실행이 되는지 궁금합니다;;
                    }

                }

                user_size = list.size();

                if(user_size != 0)
                {
                    String num = String.valueOf(user_size);

                    Toast.makeText(RandomChatActivityUser.this, num, Toast.LENGTH_LONG).show();

                    int randomNum = new Random().nextInt(user_size) + minNum;

                    if (user_size >= 1 && user_size != 0)
                    {
                        random_user = list.get(randomNum);

                        Toast.makeText(RandomChatActivityUser.this, "실행됨", Toast.LENGTH_LONG).show();
                    }

                }
                else
                {
                    Toast.makeText(RandomChatActivityUser.this, "유저가 없습니다.", Toast.LENGTH_LONG).show();
                }

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
                Toast.makeText(getApplicationContext(), "onCancelled", Toast.LENGTH_SHORT).show();
            }
        });

 

 

답변 부탁드리겠습니다.
알파고 (4,320 포인트) 님이 2017년 8월 4일 질문

답변 달기

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