hyeals study
인스타그램 클론 (회원가입 및 로그인 기능) 본문
[LoginActivity.kt]
- 앞서 만들었던 로그인 화면에 로그인 기능 추가
- firebase에 연결해서 사용자를 추가할 수 있게 함
- 계정 생성 및 로그인은 이메일과 패스워드를 통해 수행되도록 함
- 로그인이 완료되면 다음 엑티비티인 MainActivity로 넘어가게 함
package com.example.hyealsinstargram
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.auth.FirebaseUser
import kotlinx.android.synthetic.main.activity_login.*
class LoginActivity : AppCompatActivity() {
var auth : FirebaseAuth? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
auth = FirebaseAuth.getInstance()
email_login_button.setOnClickListener {
signinAndSignup()
}
}
fun signinAndSignup(){
auth?.createUserWithEmailAndPassword(email_edittext.text.toString(), password_edittext.text.toString())
?.addOnCompleteListener {
task ->
if(task.isSuccessful){
// Creating a user account
moveMainPage(task.result?.user)
}else if(task.exception?.message.isNullOrEmpty()){
// Show the error message
Toast.makeText(this, task.exception!!.message, Toast.LENGTH_LONG).show()
}else{
// Login if you have account
signinEmail()
}
}
}
fun signinEmail(){
auth?.signInWithEmailAndPassword(email_edittext.text.toString(), password_edittext.text.toString())
?.addOnCompleteListener {
task ->
if(task.isSuccessful){
// Login
moveMainPage(task.result?.user)
}else{
// Show the error message
Toast.makeText(this, task.exception!!.message, Toast.LENGTH_LONG).show()
}
}
}
fun moveMainPage(user:FirebaseUser?){
if(user!=null){
startActivity(Intent(this, MainActivity::class.java))
}
}
}
◎ email_login_button: 이 버튼 클릭 시 signinAndSignup 메소드가 실행됨
◎ signinAndSignup: 회원가입 및 로그인 하는 메소드. 이 메소드는 3가지 기능이 있음
- 회원가입이 성공적으로 수행된 경우 다음 엑티비티로 넘어가는 기능
- 회원가입에 실패했을 경우 에러 메세지를 출력해주는 기능
- 두 가지 경우가 모두 아닐 때 signinEmail 메소드를 실행시키는 기능
◎ signinEmail: 로그인 하는 메소드
- 아이디와 패스워드가 맞는 경우 다음 엑티비티로 넘어가는 기능
- 아이디와 패스워드가 틀렸을 경우 에러 메세지를 출력해주는 기능
◎ moveMainPage: 다음 엑티비티인 MainActivity로 넘어가게 하는 메소드
* Intent 객체를 선언할 때 필요한 파라미터
- 현재 액티비티
- 전환할 액티비티
위와 같이 이메일과 비밀번호를 입력하면,
firebase의 User부분에 내가 입력한 계정이 추가됨
'안드로이드' 카테고리의 다른 글
인스타그램 클론 (사진 업로드) (0) | 2020.04.01 |
---|---|
인스타그램 클론 (메인 화면) (0) | 2020.03.31 |
인스타그램 클론 (페이스북 로그인) (1) | 2020.03.31 |
인스타그램 클론 (구글 로그인) (0) | 2020.03.30 |
인스타그램 클론 (로그인 화면) (0) | 2020.03.29 |
Comments