2017-08-24 5 views
2

Firebaseにログインしているユーザーの現在のデータベースがありますが、今はFacebookのログインを実装しています。既存のユーザーは、ユーザーがuser/pwdですでにログインしているが、ログイン前ではない場合のみです。Firebase:既存のユーザーとfacebookアカウントをリンクする

私のアプリには2つのボタンがあります(fbと電子メールでログインします)が、既存のユーザーと同じ電子メールでfbでログインしようとすると、次のエラーが表示されますauth/account-exists-with -different-credentialと書類には、これを修正するために、ユーザは最初にログインしてからリンクする必要があると言われています。

両方のアカウントをリンクする方法があるのですが、最初にログインを実行しないとわかりますか?つまり、ログインビューからですか?

+0

https://github.com/rhroyston/firebase-v4-auth –

答えて

1

リンクする前に、まずユーザーにサインインする必要があります。同じユーザーであることを確認したい場合は、これが重要です。それ以外の場合は、Firebaseコンソールで電子メールごとに複数のアカウントに切り替えることができます。 これを解決する方法として、エラーauth/account-exists-with-different-credentialが発生した場合、Facebookでサインインした後、パスワードアカウントとしてアカウントが既に存在する場合、エラーにはerror.emailerror.credentialが含まれます。 次に、firebase.auth().fetchProvidersForEmail(error.email)を呼び出して、そのメールのプロバイダIDのリストを解決します。この場合、['password']が含まれます。その後、ユーザーにパスワードの入力を求めます。元のユーザーにサインインするにはsignInWithEmailAndPassword(error.email, password)に電話してください。次に、firebase.auth().currentUser.linkWithCredential(error.credential)に電話して、Facebook資格情報をパスワードアカウントにリンクします。両方のアカウントがマージされ、ユーザーはどちらかでサインインできます。

+0

いい音ですが、パスワードを入力する余分なステップがありますが、最終的にはそれが優れています。ありがとう! – SoldierCorp

関連する問題