반응형
파이어베이스 이메일 로그인
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 |