Android FirebaseUI를 사용한 Firebase Authentication(Facebook 인증)
FirebaseUI를 사용하고 있습니다. 사용하지 않아도 할 수 있으므로, 좋아하는 방법으로.
준비
Firebase 앱 만들기
콘솔 화면에서 (처음의 경우 이미지를 붙여 넣습니다) Android 앱을 추가합시다.
서명 증명서에 대해서는 여기에 써 있습니다.
Facebook 앱 만들기
facebook developer에 로그인하여 새로운 앱을 만드십시오.
빨간색으로 채워진 곳에 APP_ID
가 기재되어 있으므로 메모.
표시 버튼을 눌러 표시되는 APP_SECRET
Firebase 앱에서 Facebook 인증 사용
왼쪽 메뉴에서 Authentication을 선택하여 로그인 방법으로 들어갑니다.
Facebook을 활성화합니다.
방금 메모 한 APP_ID
와 APP_SECRET
를 여기에 입력하여 저장합시다.
Firebase UI Tips
Android 앱 만들기
SDK 설치
SDK 설치
세 가지 SDK를 gradle에 추가합니다.
Firebase Auth SDK
app/build.gradle
dependencies {
implementation "com.google.firebase:firebase-auth:$GOOGLE_SERVICE_VERSION"
}
app
바로 아래의 build.gradle
에 추기합니다.버전은 최신 안정 버전을 넣으십시오.
Facebook SDK
project/build.gradle
...
buildscript {
repositories {
mavenCentral()
}
}
...
프로젝트 바로 아래의
build.gradle
에 위를 추가합니다.app/build.gradle
dependencies {
// Facebook SDK
implementation "com.facebook.android:facebook-login:$FACEBOOK_SDK_VERSION"
}
app
바로 아래의 build.gradle
에 추가합니다.Firebase UI
app/build.gradle
dependencies {
// Firebase UI
implementation "com.firebaseui:firebase-ui-auth:$FIREBASE_UI_VERSION"
}
app
바로 아래의 build.gradle
에 추가합니다.추가가 끝나면 동기화합시다.
Facebook 인증 처리
debug.keystore 준비
keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000 -dname "CN=Android Debug,O=Android,C=US"
C=
의 파라미터는 일본으로 하고 싶으면 JP
로 해 둡시다.
Facebook 앱의 서명 인증서 란에 등록하는 키 해시를 꺼내고 싶다면
openssl sha1 -binary keystore/debug.keystore | openssl base64
에서 꺼낼 수 있습니다.
Layout
로그인 버튼이있는 레이아웃 파일을 만듭니다.
activity_login.xml<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
>
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="tsun.kettsun.component.activity.LoginActivity"
>
<Button
android:id="@+id/login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="facebook"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
/>
</android.support.constraint.ConstraintLayout>
</layout>
활동
Activity를 준비합니다.
LoginActivity.ktclass LoginActivity : AppCompatActivity() {
private val binding: ActivityLoginBinding by lazy {
DataBindingUtil.setContentView<ActivityLoginBinding>(this, R.layout.activity_login)
}
private val onClicked = View.OnClickListener {
startActivityForResult(
AuthUI.getInstance().createSignInIntentBuilder()
.setAvailableProviders(listOf(AuthUI.IdpConfig.Builder(AuthUI.FACEBOOK_PROVIDER).build()))
.build(), 100)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding.loginButton.setOnClickListener(onClicked)
}
}
물론 AndroidManifest.xml
에도 추기합시다.
움직여 보자
아래 화면이 나오고 버튼을 클릭하면 Facebook의 인증 화면으로 날 수 있으면 성공합니다.
실제로 인증하면 Firebase에서도 사용자를 확인할 수 있고 Authentication의 도입이 완료되고 있음을 알 수 있습니다.
요약
keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000 -dname "CN=Android Debug,O=Android,C=US"
openssl sha1 -binary keystore/debug.keystore | openssl base64
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
>
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="tsun.kettsun.component.activity.LoginActivity"
>
<Button
android:id="@+id/login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="facebook"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
/>
</android.support.constraint.ConstraintLayout>
</layout>
class LoginActivity : AppCompatActivity() {
private val binding: ActivityLoginBinding by lazy {
DataBindingUtil.setContentView<ActivityLoginBinding>(this, R.layout.activity_login)
}
private val onClicked = View.OnClickListener {
startActivityForResult(
AuthUI.getInstance().createSignInIntentBuilder()
.setAvailableProviders(listOf(AuthUI.IdpConfig.Builder(AuthUI.FACEBOOK_PROVIDER).build()))
.build(), 100)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding.loginButton.setOnClickListener(onClicked)
}
}
AuthUI
에 복수의 Provider
Reference
이 문제에 관하여(Android FirebaseUI를 사용한 Firebase Authentication(Facebook 인증)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Kettsun0123/items/fb93eb02fb4bcef595b1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)