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 |