✉️
Firebase Authenticationの確認済みのメールアドレスとは
確認済みのメールアドレスによる自動リンク
Firebase Authenticationを使って複数のProvider(Apple, Googleなど)で認証できるようにしている場合、同一のメールアドレスだとFirebase側で自動で同じアカウントとしてリンクしてくれる機能がある。
例えば、oinume@gmail.comのGoogleアカウントで認証して、Apple(oinume@gmail.com)のアカウントで認証すると、Firebase上では同じユーザーとなり、GoogleでもAppleでもログインできるようになる。
Firebaseのドキュメントを読むと、GoogleなどのIdPが発行したメールアドレスの場合にこの自動リンクの機能が働くと思われる。唯一の例外として、Appleは毎回アカウントを多要素認証(SMS認証のこと?)しているので、リンクの対象になっていると書かれている。
なので、例えばGoogleアカウントでも、oinume@yahoo.co.jp
のような他のサービスで発行されたメールアドレスで登録している場合は自動リンクの対象外になる。(未検証)
メールアドレスによるログインの場合
また、メールアドレス+パスワードで作成したFirebaseアカウントも自動リンクの対象になる。ただし、自動リンクされるのは、そのメールアドレスが認証済みの場合のみで、認証済みと未認証の場合で以下のように挙動が異なる
- 認証済みの場合:自動リンク
- 未認証の場合:リンクされず、最後に認証したProviderでのみログインができる
1. Email(oinume@gmail.com) + PasswordでFirebaseアカウント作成
2. メールアドレス認証せずにGoogleアカウント(oinume@gmail.com)で認証
3. Email+Passwordではログインできなくなる
まとめ
Firebase Authenticationの挙動を把握するのは難しい...
Discussion