[2023 하계 모각코] 5회차 결과

JUNSEO YUN·2023년 7월 26일
0

2023 하계 모각코

목록 보기
10/12

목차

  1. Firebase 이해
  2. Sign Up 구현
  3. Login 구현

1. Firebase 이해

목적: 웹서버개발을 하면서 다른 웹서비스라도 코드의 차이가 별로 없기 때문에 
     백엔드개발을 자동으로 해주는 서비스가 있으면 좋겠다는 생각에서 시작됨.

추가자료: https://www.youtube.com/watch?v=9RkXchEJgKU

2. Sign Up 구현

  1. 내 앱을 FireBase에 연결한다.
  2. 내 앱에 Firebase Auth SDK를 가져온다.(SDK는 미리 작성된 코드임)
  3. Firebase console 설정을 완료한다.
    SHA-1 디지털 지문 추가
    참여-Auth-Sign in method-새 제공업체 추가-이메일 비밀번호
	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();
                            }
                        }
                    });
                }
            }
        });

3. Login 구현

	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

-동기/비동기 방식

profile
얼죽코

1개의 댓글

comment-user-thumbnail
2023년 7월 26일

정리가 잘 된 글이네요. 도움이 됐습니다.

답글 달기