- Firebase 이해
- Sign Up 구현
- Login 구현
목적: 웹서버개발을 하면서 다른 웹서비스라도 코드의 차이가 별로 없기 때문에
백엔드개발을 자동으로 해주는 서비스가 있으면 좋겠다는 생각에서 시작됨.
추가자료: https://www.youtube.com/watch?v=9RkXchEJgKU
btnRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String stEmail = etId.getText().toString();
String stPassword=etPassword.getText().toString();
if(stEmail.isEmpty()) {
etId.setError("Email cannot be empty.");
}
if(stPassword.isEmpty()){
etPassword.setError("Password cannot be empty.");
}
else{
//계정 생성
auth.createUserWithEmailAndPassword(stEmail, stPassword).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()){
Toast.makeText(MainActivity.this, "SignUp Successful", Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(MainActivity.this, "SignUp Failed."+task.getException().getMessage(), Toast.LENGTH_SHORT).show();
}
}
});
}
}
});
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String email = etId.getText().toString();
String password=etPassword.getText().toString();
//이메일이 동일한가?
if(!email.isEmpty() && Patterns.EMAIL_ADDRESS.matcher(email).matches()) {
//패스워드가 존재하는가?
if(!password.isEmpty()) {
//패스워드가 일치하는경우
auth.signInWithEmailAndPassword(email, password).addOnSuccessListener(new OnSuccessListener<AuthResult>() {
@Override
public void onSuccess(AuthResult authResult) {
Toast.makeText(MainActivity.this, "Login Successful", Toast.LENGTH_LONG).show();
startActivity(new Intent(MainActivity.this, MainActivity2.class));
finish();
}
//패스워드가 일치하지 않는 경우
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(MainActivity.this, "Login Failed", Toast.LENGTH_SHORT).show();
}
});
}
//패스워드가 존재하지 않는다면
else{
etPassword.setError("Password cannot be empty.");
}
}
//이메일이 비어있다면
else if(email.isEmpty()){
etId.setError("Email cannot be empty.");
}
//이메일 형식이 정확하지 않는다면
else{
etId.setError("Please enter vaild email.");
}
}
});
추가자료:
-Task
정리가 잘 된 글이네요. 도움이 됐습니다.