【Firebase】なんとなく掴めたfirebase authの勘所

研究
Jeremy Bishop at Pexels
この記事は約3分で読めます。

追記
拙稿にて解決しました!

必要要件
firebase firestore とfirebase auth。

基本仕様

  • SNSっぽく会員登録および認証を使う=firebase auth
  • 但しログインしていなくても各アカウントのニックネームとか可視範囲がある=firebase firestore

アカウント登録画面の仕様(追々修正した結果)

  1. メルアド入力
  2. firebase authの機能で認証メール発信
  3. メール内URLからアプリを開いたら、仮パスワードにてアカウントを登録
  4. プロフィール登録画面を強制的に展開するのでパスワードを改めて登録

ハマりどころ

  1. firebaseに慣れておらずユーザ情報とかfirestoreでよくなくね?と作業を進めるも
  2. 本来はauthで認証しないでfirestoreを大公開するのはセキュリティ上あまりオススメしていない
  3. そもそもauthを使わないと認証メールが飛ばせない
  4. そこで後からauthを使うよう修正
  5. ユーザの再認証が解っておらず、結果アカウント登録認証メールは飛んだものの、パスワードの設定やアカウント削除ができない

Firebase でユーザーを管理する

createUserWithEmailAndPassword メソッドを呼び出すか、 Google ログインや Facebook ログイン などのフェデレーション ID プロバイダを使用してユーザーが初めてログインすると、Firebase プロジェクトに新しいユーザーが作成されます。 Firebase コンソールの [Authentication] セクションにある [ユーザー] ページで、または Admin SDK を使用して、パスワードで認証される新しいユーザーを作成することもできます。 現在ログインしているユーザーを取得するには、Auth オブジェクトでオブザーバーを設定することをおすすめします。 firebase.auth().onAuthStateChanged(function(user) { if (user) { // User is signed in. } else { // No user is signed in.

試行錯誤の結果把握できたfirebase authとfirestoreに置いた可視範囲の使い方

  1. まずfirebase authでアカウントをよしなに登録
  2. authで登録したuidをfirestoreのusersコレクションのdocument idにつけるなりして、可視範囲を登録

ここまで使って思ったのが、先程のユーザの再認証がネックになりうるのではないかと

パスワードを完全に忘れて認証ができない状態に陥ってしまうと、実質何もできない。
だがこのサービスっていかにもパスワード忘れそうなユーザー層な気がw
こんなん悩むの私だけかもしれないが、ほんと悩んだ。

取り敢えずこの正解をなんとか見つけたい。
パスワードを平文で持っちゃ意味ないんだけど、firestoreに持つやつなのか。

まあ誰か解決してる先人がいるかも知れない。ひとまず頭を一瞬切り替えよう。

コメント

タイトルとURLをコピーしました