KOTLIN

TIL : Firebase 사용해 이메일로 회원가입하기/ Google 아이디로 회원가입하기

장꾸꾸 2021. 3. 15. 15:43

Firebase 사용해서 이메일로 회원가입

  1. Tools에서 Firebase 선택

    파이어베이스1


  2. Authentication 선택

    • Firebase에 Connect 후 Add Firebase Authentication to app (build.gradle/ pp/build.gradle에 추가하는 것 accept)
  3. 적용

    ...
    class LoginActivity : AppCompatActivity() {
        var auth: FirebaseAuth? = null
        ...
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_login)
            auth = FirebaseAuth.getInstance()
            btn_login.setOnClickListener {
                signin_signup()
            }
        ...
        fun signin_signup() {
            auth?.createUserWithEmailAndPassword(et_email.text.toString(), et_pwd.text.toString())
                ?.addOnCompleteListener { task ->
                    if (task.isSuccessful) {
                        //creating a user account 회원 계정 만들기:1
                        moveMainPage(task.result?.user) //계정이 만들어지면 넘어가도록
                    } else if (task.exception!!.message.isNullOrEmpty()) {
                        //작동하지 않는 부분 Show the error message:2
                        Toast.makeText(this, task.exception?.message, Toast.LENGTH_LONG)
                            .show() //에러나면 toast 띄우기
                    } else {
                        //Login if you have account (1계정이 이미 있고, 2오류가 없으면 로그인 진행)
                        signinEmail()
                    }
                }
        }
    

이런식으로 적용해주면 됩니다. :tada:!!


파이어베이스2




Google 계정으로 회원가입하기

파이어베이스3

잘 뜨길래 다 됐구나 했는데 MainActivity로 넘어가질 않았습니다!

내가 무슨 코드를 잘못 친 게 아닐까 하면서log.d()로 도배를 했습니다.

onActivityResult 에서 문제가 있는 것 같아 다 찍어봤습니다.

그랬더니 GoogleSignInResult가 Success가 아니라는 건 알았는데, 이해가 안됐습니다. 난 강의 코드랑 똑같이 쳤는데, 강좌에서는 되고, 나는 안된다고?!

씩씩거리며 질문하러 갔는데, 해당 강의의 질문하기란에 수강생 분이 이미 친절하게 남겨뒀습니다.

SHA1 키를 등록하지 않아서 생긴 문제였습니다! 빠밤! :tada:

우측상단 Gradle을 클릭하고 signingReport에서 SHA1을 확인하고 카피해줍니다.


파이어베이스4


Firebase에서 해당 프로젝트의 Authentication을 클릭하고, sign-in method Google의 프로젝트 수준 설정을 클릭해줍니다. 인증서 지문 칸에 카피해온 SHA1을 넣고 저장해줍니다.

파이어베이스5


파이어베이스6


다시 google로그인을 시도했을 때, 정상적으로 회원등록이 되고 MainActivity로 넘어가는 것을 확인할 수 있습니다!

파이어베이스7