Firebase の Cloud Firestone
を利用する際に、認証処理が必要になったので実装方法をまとめ。
…認証系の処理はどうも苦手なんです…!
公式サイトのドキュメントはこちらから。
Authentication | React Native Firebase
https://rnfirebase.io/auth/usage
さて、まずは下記コマンドでライブラリをインストールします。
npm install @react-native-firebase/auth --save // iOS の環境の場合は下記も実行する npx pod-install
なお、@react-native-firebase/app
のインストールと設定については割愛します。
もしやり方を知りたい場合は、公式ドキュメントをご参照ください。
事前準備はこれで OK なので、あとは任意のログイン・新規会員登録の処理を行ってください。
私はメールアドレスとパスワードでのログインと新規会員登録の処理を実装しました。
サンプルコードは以下のとおりです。
/* ログイン */ auth() .signInWithEmailAndPassword(mailaddress, password) .then(() => { // ログイン成功時の処理を記述 console.log('Login Success!'); }) .catch(error => { // ログイン失敗時の処理を記述 console.log(error); });
/* 新規会員登録 */ auth() .createUserWithEmailAndPassword(mailaddress, password) .then(() => { // 登録成功時の処理を記述 console.log('Sign up Success!'); }) .catch(error => { // 登録失敗時の処理を記述 console.log(error); });
なお、エラー発生時に返却されるエラー情報には、エラーコードが含まれています。
error.code
で取得でき、中身は auth/invalid-email
や auth/user-not-found
などといった文字列です。
今回は省略してしまっていますが、エラー内容ごとに処理を分けたい場合は、このエラーコードで判断すると良いです。
また、既にログイン済みの状態で、ログインユーザの情報を確認したい場合は下記のように記述します。
/* ログイン済みユーザの情報取得 */ const user = auth().currentUser; console.log(user);
登録メールアドレスや、設定してあれば名前等が返却されています。
なお、もしログインしていない状態で上記を実行した場合は null
が返却されます。
そのため、ログイン済みかどうかの判断をする際にも使えます。
最後にログアウト処理がこちら。
/* ログアウト */ if (auth().currentUser !== null) { auth().signOut(); }
ワーニングが発生したため、ログイン済みかどうかの判定を追加しています。
私が実装した機能は以上です。
ドキュメントを見ると、ログイン・新規会員登録は、Facebook、Twitter などの SNS アカウントを用いたもののほかにも、Apple アカウントや 電話番号を利用したものもありました。
何を使うのかについては、アプリに合わせて判断してください。
以上、React Native で Firebase の Authentication を実装する方法についてでした。
ご参考になれば幸いです。