前提・実現したいこと
firebaseを使ったサイトにサインアップした後に、プロフィール設定画面へURLを遷移させたいです。
GoogleもしくはTwitterのみで登録またはログインできるサイトになっています。
したがってGoogleの場合であれば
const googleProvider = new firebase.auth.GoogleAuthProvider(); firebase.auth().signInWithRedirect(googleProvider);
といった形でサインアップもしくはサインインができます。
firestoreも使い、ユーザー登録時にuserコレクションへuidやtimestampを一緒に格納します。
発生している問題・エラーメッセージ
しかし初めてsignInWithRedirect(googleProvider);を使ってサインアップした後にプロフィール設定画面へ飛ばしたいのですがこの呼び出し関数だと初めてかどうかを識別できません。初登録であってもそうでなくてもサインアップ兼サインインが出来てしまいます。
Emailでの初登録であればsignInWithEmailAndPassword(email, password);だといった形で登録していないメールアドレスであればエラー処理を走らせることはできますし、createUserWithEmailAndPassword(email.value, password.value);を使って登録させることが出来るのですが皆さんはこういった場合、どのようにしますか。
できればやりたくないのですが最悪、firestoreのコレクションをサインイン後に呼び出し、既存uidとの一致チェック、なければプロフィール設定画面へ飛ばす、あれば普通ログインという風にしようと考えています。
しかしこれだとfirestoreを無駄に呼び出してしまうのでできればやりたくありません。
他に関数を探せばあるとは思うのですが見つけきれず質問しました。
(React上でfirebaseを使っています。)
あなたの回答
tips
プレビュー