Open4

Firebaseの匿名認証触って得た知見

やりたいこと

  • WebアプリでFirebaseの匿名認証を使う
  • 後に永久アカウント化することを考える
  • ただしあまり時間掛けたくない

はじめに考えたこと

困ったこと

時間掛けずに簡単にやりたい!

  • 手動によるログインフローだと、使いたい認証プロバイダーごとの実装が必要

linkWithPopup使う

果たしてこれで完成か?

  • 匿名認証のタイミングは適切か?
    • アクセスした時点で匿名認証されるので、ブラウザ変えただけで別アカウントになる
    • ユーザーは既にどこかのブラウザでSNS認証をしていたとする
    • 匿名認証されたアカウントでもWebアプリの全ての機能を使用できる場合を考える
    • 匿名認証に気付かないで特定の操作をした場合、SNS認証したアカウントへその操作は統合できる?
      • 例えば料理レシピをアップロードして全ユーザーに共有する機能を利用した場合
      • 匿名アカウントでアップロードしちゃったけど、本当はSNS認証したアカウントでアップロードしたかった
      • 統合には面倒な作業が必要。。。
    • この場合、アクセス時点で匿名認証させるのはリスクが存在する

作戦変更

  • 特定の操作をしたタイミングでのみ、匿名認証をさせる
    • このタイミングでログインするかを確認する
    • ユーザーは自身のSignIn状態を認識できる

最終構成

  • 各状態ごとの認証導線
    • 非ログイン時
      • ログイン:signInWithPopup()
      • アカウント登録:signInWithPopup()
    • 匿名アカウントログイン時
      • アカウント連携:linkWithPopup()
    • ログイン時
      • アカウント連携:linkWithPopup()
      • ログアウト
  • 匿名認証するタイミング
    • 特定の操作時:signInAnonymously()
ログインするとコメントできます