【Kotlin/Firebase】Authenticationでメールアドレス/パスワードでログインを実装する方法!

この記事からわかること
- Kotlin/Firebaseで作成したAndroidアプリにAuthenticationを導入する方法
- メールアドレス/パスワードでログインできるようにする方法
- エラー:com.google.android.gms.common.api.ApiException: 10:の解消方法
index
[open]
\ アプリをリリースしました /
今回はFirebase Authenticationでログイン機能を実装する際に、メールアドレス/パスワードでログインできるようにする方法をまとめていきます。
Authenticationでメールアドレス/パスワードでログインする方法
手順
- Firebase プロジェクトにAuthenticationを追加
- gradleにSDKの追加
- フィンガープリントの取得/登録
- マニフェストファイルに権限を追加
上記手順で導入まで先に進めておきます。
1. Firebase プロジェクトにAuthenticationを追加
参考文献:Android で Google を使用して認証する
まずはFirebase Authenticationを「始める」をクリックして認証するログインプロバイダを選択します。

ここでメール/パスワードを選択します。


これでプロジェクトの準備が整ったのでプロジェクトにAndroidアプリを追加しておいてください。すでにAndroidアプリを追加していた場合は「google-services.json」が更新されているので変更しておく必要があります。ここらへんの詳細な流れは以下の記事を参考にしてください。
【Android Studio】Firebaseの導入方法!Firebase Analytics/Google Analytics
2.gradleにSDK追加
続いて「build.gradle」にAuthenticationのFirebase SDK(Software Development Kit)を追加していきます。追加するのは以下の2つです。
3.フィンガープリントの取得/登録
ここの詳細は以下の記事を参考にしてください。ざっくり説明すると以下コマンドを入力してフィンガープリントを取得しFirebaseに登録する流れになります。

4.マニフェストファイルに権限を追加
Authenticationの機能を利用するにはネットワークアクセスが必要になるので以下の権限を追加しておきます。
アカウント作成
アカウントを作成するにはcreateUserWithEmailAndPassword
メソッドを使用します。引数にメールアドレスとパスワードを渡します。成功した時の処理はaddOnCompleteListener
、失敗した時の処理はaddOnFailureListener
で実装できます。
サインイン
アカウントが作成済みでサインインするにはsignInWithEmailAndPassword
メソッドを使用します。
サインアウト
サインイン済みのアカウントがサインアウトするにはsignOut
メソッドを使用します。
サインインしているか識別する
サインインしているかどうかを識別するにはcurrentUser
プロパティを参照します。この値がnull
であればサインインしていない状態になります。
ユーザー情報取得
currentUser
プロパティからはFirebaseUser
型で値を取得できます。各プロパティからユーザー情報を取得できます。
providerId
からはfirebase
となってしまうのでメールアドレスやGoogleなどのプロバイダを知りたい場合はproviderData
から参照すると取得することができます。
ユーザー情報を編集する
ユーザー情報を編集したい場合はuserProfileChangeRequest
で変更対象の情報リクエストを構築してupdateProfile
メソッドを使用します。
退会する
退会したい場合はdelete
メソッドを使用します。最終認証時間から時間が経過している場合は再認証してからでないと退会できないので注意してください。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。