2017-01-14 1 views
0

android studio에서 Firebase를 사용하고 있는데 가입 및 로그인 프로젝트를 만들고 싶습니다. Firebase에 데이터를 저장할 수는 있지만 데이터를 검색 할 수는 없습니다.Firebase android problems

모든 예에서 실시간으로, 리스너를 먼저 설정하고 데이터를 저장합니다. 그러나 내 것은 단지 저장하고 나중에 검색하는 것과 같습니다.

데이터를 검색하는 방법이 있습니까?

public void onLogIn(View v){ 
    reference2 = fbData.getReference(loginId.getText().toString()); 
    reference2.addListenerForSingleValueEvent(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      String gotPw = dataSnapshot.getValue(String.class); 
      if(gotPw == loginPw.getText().toString()){ 
       Log.d("TEST","DONE"); 
      } 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      Log.d("TEST","ERROR"); 
     } 
    }); 

} 

이 코드도 onDataChange 메소드를 호출하지 않습니다 (나는 :(당신이 이해할 수 바랍니다). 자바에서

+1

이 완료되는 수신기를 부착하여하는 경우도 당신의'onDataChange()'도 당신의'onCancelled()'호출되고,네트워크에 연결되어 있지 않은 것이 가장 가능성이 큽니다. –

+1

onDataChange가 호출되었지만 위의 코드를 보면 다른 방법으로 체크인했는지 여부는 알지 못합니다. "완료"로그에 의존하지 않습니다. 문자열을 비교하고 있다면 .equals() 메서드를 사용하여 ==가 아닌 String을 비교해야합니다. http://stackoverflow.com/a/767379/5251523 –

답변

1

== 항상 true 반환하지 않습니다 문자열을 비교하는 연산자 경우에도 문자열 값 같은 수 있습니다

일을 시도해보십시오.. 중포 기지 데이터베이스에서 데이터를 가져 오는

if(gotPw.equals(loginPw.getText().toString())){ 
      Log.d("TEST","DONE"); 
     } 
+1

좋은 캐치! 나는 그것을 간과했다. –

+1

와우! 그것은 일했다 :) 감사합니다 – Huzi

+0

당신은 내가 다른 사람들을 돕기 위해 답을 받아 들일 수 있습니다. –