삽질개발

[Mindev 개발공부]Android 20분만에 채팅App만들기 -Firebase(3) 본문

Android

[Mindev 개발공부]Android 20분만에 채팅App만들기 -Firebase(3)

MinDev 2017. 9. 21. 00:30

저번시간에 회원가입성공 까지 하였고 이제 회원가입이 성공하였으니 로그인과정을 알아보겠습니다.


저번시간에 로그인화면 XML을 만들어보았었습니다.

이제 그부분에서 작업을 시작하겠습니다.


먼저 각각 ID먼저 선언부터 하도록하겠습니다.


-아래 코드는 MainActivity 에서 이루어지는 작업입니다.

private Button login;
private EditText edittext_id, edittext_pw;
edittext_id = (EditText) findViewById(R.id.edittext_id);
edittext_pw = (EditText) findViewById(R.id.edittext_password);
login = (Button) findViewById(R.id.loginActivity_button_login);

전역변수를 선언후  ID를 선언해주었습니다. 

각각 email,password,login 버튼입니다.



이후 login 버튼을 눌렀을떄 onClick 이벤트 리스너들 선언후 이안에서 정보의 유무를 판단하겠습니다.

login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

}
});

먼저 아무것도 입력하지않았을때의 예외처리를 먼저 해주겠습니다.


if (edittext_id.getText().toString().isEmpty() || edittext_pw.getText().toString().isEmpty()) {
Toast.makeText(getApplicationContext(), "입력 사항을 확인해보세요.", Toast.LENGTH_LONG).show();
return;
}

각각의 입력값이 빈값이면 Toast 메세지로 입력후 return 을 해주게됩니다.


이제 로그인에 필요한 FirebaseAuth 선언해줍니다.

private FirebaseAuth mAuth;
mAuth = FirebaseAuth.getInstance();

이제 mAuth를 통해 정보가 맞는지 틀린지 확인해보겠습니다.


onClick 리스너안에서 정의해줍니다.

mAuth.signInWithEmailAndPassword(edittext_id.getText().toString(), edittext_pw.getText().toString())
.addOnCompleteListener(LoginActivity.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {

}
});


이메일과 비밀번호를 넣어주며 addOnCompleteListener  리스너로 성공유무의 값을 확인합니다.


mAuth.signInWithEmailAndPassword(edittext_id.getText().toString(), edittext_pw.getText().toString())
.addOnCompleteListener(LoginActivity.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
startActivity(new Intent(MainActivity.this, Chat.class));
finish();
} else {
Toast.makeText(getApplicationContext(), "실패하였습니다.", Toast.LENGTH_SHORT).show();
}
}
});

성공시 Chat Activity를 만들어주고 성공시 이동시킵니다.


다음글은 채팅구성에대해서 알아보겠습니다.



아래는 저의 github 주소입니다.

 https://github.com/mkw8263

Comments