LeeWang_31
이왕31
LeeWang_31
전체 방문자
오늘
어제
  • 분류 전체보기 (234)
    • 프로젝트 (2)
      • 사이드 프로젝트 (2)
      • Codestates_pre_project (0)
    • 프론트엔드 (169)
      • Html (19)
      • CSS (18)
      • JavaScript (29)
      • Codestates (76)
      • 코딩노트 (27)
    • 백엔드 (10)
      • node (10)
    • 구르는 돌 🌑 (16)
      • Codestates (11)
      • 생각 (4)
      • 공부 흔적 (1)
    • 정보 (18)
      • 오류노트 (2)
      • 인텔리제이 정보 (9)
      • 깃 정보 (3)
      • 기타 정보 (4)
      • 안드로이드스튜디오 정보 (0)
    • CS (7)
      • 이론공부 (7)
    • App (6)
      • Android (3)
      • Kotlin (3)
    • 컴퓨터 수학 (5)
      • 암호론 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • TODOlist
  • linuix 코드스테이츠
  • 웹팩
  • ubuntu
  • 안드로이드스튜디오파이어베이스
  • 번들링
  • DP
  • React
  • figjam
  • 사용자 친화 웹
  • 코드스테이츠
  • css
  • 알고리즘
  • JavaScript
  • 코딩애플
  • 파이어베이스연동
  • 백준
  • 사이드프로젝트
  • linux
  • codestate
  • UI/UX
  • html
  • 생활코딩
  • 2609
  • 1292
  • 코플릿
  • 안드로이드스튜디오범블비
  • 2693
  • 사용자친화웹
  • 자바스크립트

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
LeeWang_31

이왕31

[Android/Kotlin 로그인 앱 만들기 2] 회원 가입
App/Android

[Android/Kotlin 로그인 앱 만들기 2] 회원 가입

2022. 5. 20. 03:36

다음과 같이 간단한 회원가입 레이아웃을 만들었습니다.

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">

    <EditText
        android:id="@+id/et_email"
        android:hint="email"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <EditText
        android:id="@+id/et_pwd"
        android:hint="pwd"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    <Button
        android:id="@+id/bt_join"
        android:text="회원가입"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>


</LinearLayout>

메인kt로 넘어와서 만들었던 버튼을 선언하고, 온클릭을 생성해줍니다.

 

val bt_join = findViewById<Button>(R.id.bt_join)
bt_join.setOnClickListener {

}

다시 파이어 베이스로 넘어오겠습니다.

이전에 만들어둔 프로젝트에 들어가서 Authentication을 눌러줍니다.

화면에 보이는 시작하기 버튼을 눌러줍니다.

기본 제공업체에서 이메일/비밀번호를 선택합니다.

사용 설정을 On 해주시고 저장을 누릅니다.

 


 

구글에 android firebase auth를 검색하고 이동해 줍니다.

https://firebase.google.com/docs/auth/android/start?hl=ko

 

Android에서 Firebase 인증 시작하기  |  Firebase Documentation

Check out what’s new from Firebase at Google I/O 2022. Learn more 의견 보내기 Android에서 Firebase 인증 시작하기 Firebase에 앱 연결 아직 추가하지 않았다면 Android 프로젝트에 Firebase를 추가합니다. 앱에 Firebase 인

firebase.google.com

 

스크롤을 조금 내리면 앱에 FireBase 인증 추가라는 부분이 있습니다.

이번에도 자바가 아닌 코틀린을 누르고 아래 코드를 build.gradle(Module: LoginApp)에 넣어줍니다.

implementation platform('com.google.firebase:firebase-bom:29.3.1')

위에 코드는 이전 시간에 파이어베이스 연동때 넣었기 때문에 추가하지 않습니다.

 

dependencies {
  
    implementation 'com.google.firebase:firebase-auth-ktx'
    
}

Sync Now를 해줍니다.


현재 인증 상태 확인으로 갑니다.

private lateinit var auth: FirebaseAuth

FirebaseAuth의 인스턴스를 선언하는 부분입니다.

// Initialize Firebase Auth
auth = Firebase.auth

onCreate() 메서드에서 FirebaseAuth 인스턴스를 초기화합니다.

 

다음 코드들을 위치에 넣어줍니다.

 

넣어주면 글씨들이 빨갛게 되는데, 이는 alt+enter로 쉽게 import하여 오류를 제거할수 있습니다.


신규 사용자 가입입니다.

아래 코드를 그대로 복사해 줍니다.

auth.createUserWithEmailAndPassword(email, password)
        .addOnCompleteListener(this) { task ->
            if (task.isSuccessful) {
                // Sign in success, update UI with the signed-in user's information
                Log.d(TAG, "createUserWithEmail:success")
                val user = auth.currentUser
                updateUI(user)
            } else {
                // If sign in fails, display a message to the user.
                Log.w(TAG, "createUserWithEmail:failure", task.exception)
                Toast.makeText(baseContext, "Authentication failed.",
                        Toast.LENGTH_SHORT).show()
                updateUI(null)
            }
        }

아직 선언을 안한 부분도 있고 코드를 이해하는데 방해가 될수 있는 부분도 있으니

지금보다 직관적으로 코드를 수정하겠습니다.

 

email과 password를 받는건 구현을 하지 않았으니

abc@naver.com과 12341234로

email과 password로 직접 대입하겠습니다.

 

if문은 성공적으로 로그인이 되었는지에 대한 구문입니다.

다른 내용은 지우고 토스트 메세지를 통해 실행이 잘 되는지 확인하겠습니다.

class MainActivity : AppCompatActivity() {

    private lateinit var auth: FirebaseAuth

    override fun onCreate(savedInstanceState: Bundle?) {
        auth = Firebase.auth
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val bt_join = findViewById<Button>(R.id.bt_join)
        bt_join.setOnClickListener {
            auth.createUserWithEmailAndPassword("abc@naver.com", "12341234")
                .addOnCompleteListener(this) { task ->
                    if (task.isSuccessful) {
                        Toast.makeText(this,"ok", Toast.LENGTH_SHORT).show()
                    } else {
                        Toast.makeText(this,"no", Toast.LENGTH_SHORT).show()
                    }
                }
        }
    }
}

 


실행 하겠습니다~~

회원가입 버튼을 누르면 ok라는 메세지가 나옵니다.

처음 한번만 ok가 나오고 이후에는 no가 나옵니다.
임의로 지정했던 아이디가 중복해서 파이어베이스 데이터 베이스에 저장될수 없기 때문입니다

 

파이어 베이스에 들어가 Authentication를 누르고 좌측 상단에 User에 들어갑니다.

아까 임의로 입력한 abc@naver.com라는 아이디가 들어간것을 확인할수 있습니다.

 

 


 

'App > Android' 카테고리의 다른 글

[Android/Kotlin 로그인 앱 만들기 1] 파이어 베이스 연동  (0) 2022.05.20
[Android/Kotlin 로그인 앱 만들기 0] Bumblebee와 Arctic Fox  (0) 2022.05.19
    'App/Android' 카테고리의 다른 글
    • [Android/Kotlin 로그인 앱 만들기 1] 파이어 베이스 연동
    • [Android/Kotlin 로그인 앱 만들기 0] Bumblebee와 Arctic Fox
    LeeWang_31
    LeeWang_31
    이왕 할 거면 기분 좋게

    티스토리툴바