iOSエンジニアのつぶやき

毎朝8:30に iOS 関連の技術について1つぶやいています。まれに釣りについてつぶやく可能性があります。

【Firebase Authentication】KotlinでSignIn・SignUp

Android・Kotlinで、Firebase Authenticationを使った、メールアドレスによるSignIn・SignUpの実装をしたので、簡単に手順をまとめてみたいと思います👷‍♀️

やっていく

まずはFirebase Authentication Androidライブラリを、アプリレベルのGradleファイルに記述してインストールします。

dependencies {
    // ...
    implementation platform('com.google.firebase:firebase-bom:26.8.0')
    implementation 'com.google.firebase:firebase-auth-ktx'
    // ...
}

最後にSignInSignUpの実装をそれぞれ行っていきます。今回はRxKotlinObservableで処理を受け取れるようにしています。

    override fun signUp(email: String, password: String): Observable<String> {
        val auth = Firebase.auth
        return Observable.create { e ->
            auth.createUserWithEmailAndPassword(email, password)
                .addOnSuccessListener {
                    signInSuccessHandle(e, it)
                }
                .addOnFailureListener {
                    e.onError(it)
                }
        }
    }

    override fun signIn(email: String, password: String): Observable<String> {
        val auth = Firebase.auth
        return Observable.create { e ->
            auth.signInWithEmailAndPassword(email, password)
                .addOnSuccessListener {
                    signInSuccessHandle(e, it)
                }
                .addOnFailureListener {
                    e.onError(it)
                }
        }
    }

    private fun signInSuccessHandle(e: ObservableEmitter<String>, result: AuthResult) {
        val user = result.user
        if (user is FirebaseUser) {
            e.onNext(user.uid)
            e.onComplete()
        } else {
            e.onError(Exception(context.getString(R.string.unknownError)))
        }
    }

てな感じで本日も以上となります🍺

参考

その他の記事

yamato8010.hatenablog.com

yamato8010.hatenablog.com

yamato8010.hatenablog.com