Firebaseをいろいろいじり中。
Googleでの外部認証機能の実装が出来たので、ついでにGithubでの認証とかも試してみようかと思った段階で詰まった。
firebase.auth().onAuthStateChanged(user => { if (user) { this.setUser(user.uid) this.$router.push('/') } else { this.setUser(null) this.isLoading = false } })
Firebaseの認証情報取得としてはよくあるコードのはずだが、何故かGithub認証を使うとuserがnullになった。
検索をかけてもよく分からずとりあえずGoogleで認証したユーザーを一度削除してみるとちゃんとGithub認証できるようになった。
よく調べていなかったが、Firebaseはデフォルトだと一つのメールアドレスにつき一つのアカウントしか作成できないが、今回認証で使用しようとしていたアカウントはGoogleもGithubも同じメールアドレスを使用していたため、うまくGithubのアカウントによる認証が出来ていなかったらしい。
恐らくどこかの段階でエラーが出ているんだと思うが、うまくエラーハンドリング出来ていなかったので気が付けなかった。
ちなみにメールアドレスAを使用しているGithubアカウントによる認証の後同じメールアドレスAを使用したGoogleアカウントの認証を実行することはできたが、逆の流れ(Google認証の後Github認証実行)は出来なかった。なんか決まりがあるんだろうか。