티스토리 뷰

반응형
SMALL

Google Firebase Consle 진입 후 Authentication 탭에 있는 화면
이메일/비밀번호 수정하기 눌러 사용설정 변경

 

그다음은 이제 안드로이드 스튜디오 에서 작업을 진행.

 

참고 : https://firebase.google.com/docs/auth/android/email-link-auth?authuser=0

 

Android에서 이메일 링크를 사용하여 Firebase에 인증하기

Firebase 인증을 사용하면 로그인 링크를 이메일로 전송해서 사용자가 바로 로그인하게 할 수 있습니다. 이 과정에서 사용자의 이메일 주소도 인증됩니다. 이메일로 로그인하는 경우 다음과 같은 많은 이점이 있습니다. 편리한 가입 및 로그인 여러 애플리케이션에서 비밀번호를 재사용할 위험이 적음: 재사용하면 아무리 보안등급이 높은 비밀번호라 해도 보안이 약화될 수 있음 사용자를 인증하는 동시에 사용자가 이메일 주소의 합법적인 소유자인지 확인하는 기능 액세스

firebase.google.com

 

App Build.Gradle

minSdkVersion 16	// 16 이상인듯.. 15였다가 16으로 올리니까 되네 ?
multiDexEnabled true	// 이것도 .. 해야 된다고 에러 나서 했네 .. 

// Firebase - auth
    implementation 'com.google.firebase:firebase-auth:19.3.0'
    implementation 'com.google.android.gms:play-services-auth:18.0.0'

 

회원가입할 때

// 회원가입 진행
FirebaseAuth
    .getInstance()
    .createUserWithEmailAndPassword(et_join_id.text.toString(), et_join_pw.text.toString())
    .addOnCompleteListener { task ->
        if (task.isSuccessful) {
            mRxBus.publisher_idpw(et_join_id.text.toString(), et_join_pw.text.toString())
            mRxBus.publisher_goTo(mRxBus.LOGINPAGE)
        } else {
            showDialog(it.context, it.context.getString(R.string.dialog_alert_msg_error))
        }
    }

 

로그인 할 때

FirebaseAuth
    .getInstance()
    .signInWithEmailAndPassword(et_login_id.text.toString(), et_login_pw.text.toString())
    .addOnCompleteListener { task ->
        if (task.isSuccessful) {
            mRxBus.publisher_goTo(mRxBus.GOMAIN)
        } else {
            showDialog(it.context, it.context.getString(R.string.dialog_alert_msg_error)).show()
        }
    }

 

로그아웃 할 때

val firebaseAuth by lazy { FirebaseAuth.getInstance() }

if (firebaseAuth.currentUser != null) {
	firebaseAuth.signOut()
}

 

반응형

 

--- 추가 내용 ( 20.04.10 )

참고 : https://firebase.google.com/docs/auth/unity/manage-users?hl=ko#send_a_user_a_verification_email

 

Firebase에서 사용자 관리하기

사용자 생성하기 Firebase 프로젝트에서 신규 사용자를 생성하는 데는 CreateUserWithEmailAndPassword 메소드를 호출하는 방법과 Google 로그인 또는 Facebook 로그인 등의 제휴 ID 공급업체를 사용하여 사용자의 최초 로그인을 처리하는 방법이 있습니다. 또한 Firebase Console '인증' 섹션의 '사용자' 페이지에서 비밀번호 인증을 사용하는 신규 사용자를 생성할 수도 있습니다. 현재 로그인한 사용자 가져오기 현재

firebase.google.com

SendEmailVerification 라는 메소드를 이용하여 사용자에게 이메일 인증을 할 수 있다.

 

회원가입을 진행 할때 사용자가 진짜 사용하고 있는 이메일인지 확인하기 위한 용도 ? 

 

뭐 다른 용도도 있겠지만..

 

회원사입 진행 할 때 

firebaseAuth
    .createUserWithEmailAndPassword(et_join_id.text.toString(), et_join_pw.text.toString())
    .addOnCompleteListener { task ->
        if (task.isSuccessful) {
        // 사용자 인증메일 보내기.
            firebaseAuth.currentUser	
                ?.sendEmailVerification()
                ?.addOnCompleteListener { verifiTask ->
                    if (verifiTask.isSuccessful) {
                        showDialog(it.context, it.context.getString(R.string.email_check)).show()
                        mRxBus.publisher_idpw(et_join_id.text.toString(), et_join_pw.text.toString())
                        mRxBus.publisher_goTo(mRxBus.LOGINPAGE)
                    } else {
                        showDialog(it.context, it.context.getString(R.string.dialog_alert_msg_error)).show()
                    }
                }

        } else {
            showDialog(it.context, it.context.getString(R.string.dialog_alert_msg_error)).show()
        }
    }

 

로그인 할 때

firebaseAuth
    .signInWithEmailAndPassword(et_login_id.text.toString(), et_login_pw.text.toString())
    .addOnCompleteListener { task ->
        if (task.isSuccessful) {
        // 인증 받은 사용자인지 확인. 
            if (firebaseAuth.currentUser?.isEmailVerified!!) {
                mRxBus.publisher_goTo(mRxBus.GOMAIN)
            } else {
                showDialog(it.context, it.context.getString(R.string.non_email_check)).show()
            }
        } else {
            showDialog(it.context, it.context.getString(R.string.dialog_alert_msg_error)).show()
        }
    }
반응형
LIST

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

[ Firebase #4 ] Firebase Storage  (0) 2020.04.17
[ Firebase #3 ] Authentication Google 인증  (0) 2020.04.10
[ Firebase #1 ] 파이어베이스 연결  (0) 2020.04.09
댓글