Android/Firebase

[Firebase] Facebook로그인

lipnus 2018. 7. 23. 00:29
반응형

  


1. Facebook개발자센터가서 새앱 만들고 안드로이드 선택한 후에 적혀있는 것을 Gradle에 넣어준다





2. Single sign on. 이거 예 하면 한번 로그인한 계정을 자동으로 인증해줌.




3. 나머지도 적절히 입력하고..


MainActivity.kt

var callbackManager: CallbackManager? = null

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

//페이스북(로그인이 완료되었을때 토큰을 받는 부분)
callbackManager = CallbackManager.Factory.create()


...



override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)

//페이스북 결과값은 이쪽으로 넘어온다. 버튼의 콜백매니저 리스너로 넘어감.
callbackManager!!.onActivityResult(requestCode, resultCode, data)

....


//페이스북
btn_facebook.setReadPermissions("email", "public_profile")
btn_facebook.registerCallback(callbackManager, object: FacebookCallback<LoginResult>{
override fun onSuccess(result: LoginResult?) {

//로그인 성공시 발급된 인증서
var credential = FacebookAuthProvider.getCredential(result!!.accessToken.token)

//파이어베이스에 페이스북 아이디를 입력
FirebaseAuth.getInstance().signInWithCredential(credential)
.addOnCompleteListener { task ->
if(task.isSuccessful){ //this가 object를 가리키고 있으므로 @넣어서 명확히 해준다
Toast.makeText(this@MainActivity, "페이스북 연동이 성공하였습니다", Toast.LENGTH_LONG).show()
}else{
Toast.makeText(this@MainActivity, task.exception.toString(), Toast.LENGTH_LONG).show()
}
}
}

override fun onError(error: FacebookException?) {

}

override fun onCancel() {

}
})




4. 버튼의 세션이 살아있는 경우가 있다. 로그아웃 하는데서 세션도 같이 날려버림


HomeActivity.kt

//로그아웃
btn_logout.setOnClickListener {
//로그아웃 할때 페이스북 세션도 날려버림
LoginManager.getInstance().logOut()

FirebaseAuth.getInstance().signOut()
finish()
}


반응형

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

[Firebase] Cloud Firestore 데이터입력  (0) 2018.07.30
[Firebase] 탈퇴하기  (0) 2018.07.23
[Firebase] 구글 로그인  (0) 2018.07.22
[Firebase] 비밀번호 변경하기  (0) 2018.07.22
[Firebase] 이메일 유효성 확인  (0) 2018.07.22