今回は、Firebase Authentication のメール認証に挑戦です。
メール認証の他にも、Twitter 認証や、匿名認証も用意されています。
初めてだから失敗するかも。
認証コンポーネントを追加する
プロジェクトに認証コンポーネントを追加します。
前回、Android Studio と Google アカウントを紐づけてあるので、接続は済んでいると思います。
まだの方は前回の記事を参考にして、接続してみて下さい。簡単だから説明なんて要らないけどね。
Add Firebase Authentication to your app を押します。
プロジェクトに追加されるコンポーネントが表示されます。
Accept Changes を押します。
レイアウトにテキストボックスとボタンを配置する
次に、見た目を作っていきます。
とりあえず、こんな感じにザックリと作ってみました。
今回はIDも変えているので、ソースをコピペする場合は気をつけて下さい。
認証のログイン方法を設定する
Firebase コンソールから認証に使用するログイン方法を設定します。
メールパスワードを有効にする
今回は、メール認証をするのでメールパスワードを有効にします。
他にもいろいろな認証方法があるので、利用者は便利だと思います。
認証処理を書く
お馴染みの Android Studio に戻って、[MainActivity.java]に認証処理を書いて行きます。
1.認証に必要なインポートをする。
1 | import com.google.firebase.auth.AuthResult; |
2.FirebaseAuth のプライベートメンバー変数を宣言する。
1 | private FirebaseAuth mAuth; |
3.onCreate() メソッドで、FirebaseAuth インスタンスを初期化します。
1 | mAuth = FirebaseAuth.getInstance(); |
4.認証状態の確認ボタンの処理を書く。
1 | findViewById(R.id.check_user_btn).setOnClickListener(new View.OnClickListener() { |
5.新規登録ボタンの処理を書く。
1 | findViewById(R.id.create_user_btn).setOnClickListener(new View.OnClickListener() { |
6.ログインボタンの処理を書く。
1 | findViewById(R.id.sign_in_btn).setOnClickListener(new View.OnClickListener() { |
7.新規登録処理を書く。
1 | private void createUser(String email, String password) { |
8.ログイン処理を書く。
1 | private void signIn(String email, String password) { |
9.確認ダイアログ処理を書く。
1 | private void showDialog(String message) { |
なんやかんやで長くなってしまいました。
やっていることは前回と同じで、ボタンを押したら入力してあるメルアドとパスワードを、createUser や、signIn に投げているだけです。
そして結果が戻ってきて、成功だったらダイアログを表示する。
そんな感じですね。
実機で動かしてみよう
実機に転送して動作確認
実機に転送して動作確認をやってみます。
適当なメールアドレスとパスワードを入力して、新規登録のボタンを押しました。
新規登録が成功したので、ダイアログと UID が表示されました。
やったね。
Firebase コンソールも確認しておきます。
同じ UID で登録されていますね。
実際に存在するメールアドレスでの確認は控えよう
実際に存在するメールアドレスで確認するのもいいのですが、注意が必要です。
一応、今のコードだとメールが飛ばないのでいいですけど、実際にメールを飛ばす処理を書くと、本当に飛んでいってしまいます。
自分が持っているメールアドレスならいいけど、知らないメールアドレスに飛ばすと、スパムメールになって迷惑が掛かるので気をつけて下さい。
めちゃくちゃつまずいて心折れかけた
私がつまずいた点を紹介します。
パスワードは6文字以上
これに気がつくまでどれだけ苦労したか!!!
Google が配布している Firebase のチュートリアルのソースコードを拾ってきて、実際に動かしても認証されないし。
どこにも書いてないし。ホント、勘弁してください。
そんな気分で、いじくっていたら出来ました!
そんなこんなで
そんなこんなで、Firebase Authentication 編、完結です。
次は、Twitter 認証パート編です。
よろしくお願いします。