Android/Firebase

[Firebase] 이메일 회원가입&로그인

lipnus 2018. 7. 21. 23:54
반응형

파이어베이스 이메일 로그인

AndroidStudio 3.0.1

Kotlin



1. Firebase선택하고 Authentication - Email and password authentication - Connect App to Firebase. 

번호대로 따라하면 다 자동으로 해준다. 



2. 코드


MainActivity.Kt

-로그인 로그아웃 처리는 콜백으로 하는게 아니라 auth리스너에서 처리한다.

package com.example.lipnus.firebaseauth

import android.content.Intent
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.widget.Toast
import com.example.lipnus.firebaseauth.R.id.*
import com.google.firebase.auth.FirebaseAuth
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

var authStateListener: FirebaseAuth.AuthStateListener? = null

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

//로그인 세션을 체크하는 부분
authStateListener = FirebaseAuth.AuthStateListener { firebaseAuth ->

Log.e("LLPP", "로그인")

var user = firebaseAuth.currentUser
if(user != null){
var iT = Intent(this, HomeActivity::class.java)
startActivity(iT)
}

}

//버튼입력을 통합처리
btnClick()
}

override fun onResume() {
super.onResume()
FirebaseAuth.getInstance().addAuthStateListener (authStateListener!!)
}

override fun onStop() {
super.onStop()
FirebaseAuth.getInstance().removeAuthStateListener (authStateListener!!)
}


fun createEmailId(){
FirebaseAuth.getInstance().createUserWithEmailAndPassword(et_id.text.toString(), et_pw.text.toString())
.addOnCompleteListener { task ->
if(task.isSuccessful){
Toast.makeText(this, "회원가입 성공", Toast.LENGTH_LONG).show()
}else{
Toast.makeText(this, task.exception.toString(), Toast.LENGTH_LONG).show()
}
}
}

fun loginId(){
FirebaseAuth.getInstance().signInWithEmailAndPassword(et_id.text.toString(), et_pw.text.toString())
.addOnCompleteListener { task ->
if(task.isSuccessful){
Toast.makeText(this, "로그인 성공", Toast.LENGTH_LONG).show()
}else{
Toast.makeText(this, task.exception.toString(), Toast.LENGTH_LONG).show()
}
}
}


fun btnClick(){
//회원가입 버튼을 눌렀을때
btn_join.setOnClickListener{
createEmailId()
}

//로그인 버튼을 눌렀을때
btn_login.setOnClickListener{
loginId()
}
}

}




HomeActivity.Kt

-로그인하면 여기로 이동, 버튼을 누르면 로그아웃

class HomeActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_home)

//로그아웃
btn_logout.setOnClickListener {
FirebaseAuth.getInstance().signOut()
finish()
}
}
}


반응형

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

[Firebase] Facebook로그인  (0) 2018.07.23
[Firebase] 구글 로그인  (0) 2018.07.22
[Firebase] 비밀번호 변경하기  (0) 2018.07.22
[Firebase] 이메일 유효성 확인  (0) 2018.07.22
[Firebase] 비밀번호 변경  (0) 2018.07.22