2016-11-24 5 views
0

데이터베이스에 따라 전자 메일을 검색하려는 문제에 대한 도움을 요청하지만 수신 된 데이터를 처리하지 못합니다. 이메일이 이미 데이터베이스에 있는지 여부를 알려주고 싶습니다.Firebase 데이터베이스 안드로이드 검색

결과를 어떻게 처리합니까? 시도 할 코드는 다음과 같습니다.

DatabaseReference reg = FirebaseReferenciak.reg; 
reg.orderByChild("email").equalTo("email", etEmail.getText().toString()).addListenerForSingleValueEvent(
    new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      Map<String, String> map = dataSnapshot.getValue(Map.class); 
      String value = map.get("name"); 
//Here is how do I check? 
      //String value = dataSnapshot.getValue(String.class); 
      dialog(value); 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      dialog("error"); 
     } 
    } 
); 

감사합니다.

답변

0

Firebase 데이터베이스에 대해 쿼리를 실행하면 잠재적으로 여러 결과가 나타납니다. 따라서 스냅 샷에는 해당 결과 목록이 포함됩니다. 단일 결과 만있는 경우에도 스냅 샷에는 하나의 결과 목록이 포함됩니다.

public void onDataChange(DataSnapshot dataSnapshot) { 
    for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) { 
     String value = childSnapshot.child("name").getValue(String.class); 
     dialog(value); 
    } 
} 
: 당신은 당신이 onDataChange()에서받는 DataSnapshot의 아이들을 통해 루프해야하는 이유

관련 문제