Firebase でチャットを作ってみた(iOS) その3 認証機能を使ってユーザ登録する

前回の記事は一時的にリアルタイムデータベースの読み書きを誰でもできるようにしてチャットを実装しましたが、セキュリティ上はあまり好ましくない状況かと思います(Firebase コンソールでも警告が表示されています)。

今回は Firebase の認証機能を使って、登録ユーザのみがデータベースにアクセスできるようにしたいと思います。
Firebase の認証機能では Google や Twitter などのアカウントを使ってログインすることもできますが、今回は単純なメールアドレスとパスワードによる認証を使います。

0. データベースの読み書き権限をデフォルトの状態に戻す

前回変更したデータベースの読み書き権限をデフォルトの状態に戻しておきます。

この状態で前回のコードを動かすと、エラーが出てデータベースにアクセスできない状態になるはずです。

1. CocoaPods で Auth を追加

Podfile に以下を追加

pod install でインストール

2. パスワード認証を有効にする

パスワード認証を含めて、全ての認証はデフォルトで無効になっているようです。
Firebase コンソールから、Authentication -> ログイン方法 -> メール/パスワード を有効に設定します。

3. 画面作成

ユーザ登録、ログイン用の画面を作成します。
新規ユーザ登録(Sign up) と既存ユーザのログイン(Log in) のボタンも作っておきます。

また、今回作ったログイン画面から前回作ったチャット画面への Segue を作成しておきます。(ここでは “talkSegue” とする)

4. 認証コードを実装する

FirebaseAuth を import します。

Sign up ボタンタップ時の動作として、下記のコードを追加します。
createUser でメールアドレスとパスワードで新規にユーザ登録を行います。
成功時は登録している Segue を呼び出してチャット画面へ遷移、失敗時はエラーメッセージを表示するように実装しておきます。

ログインする場合は signIn メッセージを使います。使い方は createUser と同じです。

5. できたコード

今回は認証部分だけの追加になります。

これでログインした状態になるので、再度データベースにアクセスし、チャットができるようになりました。


最後まで読んでいただきありがとうございます。 このブログを「いいな」と感じていただけましたら、Twiter にてフォローいただけるとうれしいです。ブログ更新情報などもお届けします。



この記事をシェアする




りゅーた
フリーランスのエンジニアしてます。Android、iOS アプリの開発、対向サーバの開発、C/C++のライブラリ開発が現在のメイン。趣味はテニス。3児の父。 もっと詳しく

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA