Angular2或4,Firebase身份验证链接问题
在Angular4+Firebase 3.x中寻找指导 用例:Angular2或4,Firebase身份验证链接问题,angular,authentication,firebase,firebase-authentication,Angular,Authentication,Firebase,Firebase Authentication,在Angular4+Firebase 3.x中寻找指导 用例: 具有所有firebase支持登录方法的登录屏幕 用户应能够首先注册提供的任何登录方法,即G+、FB、TWT或电子邮件和密码 通过任何方法成功登录后,用户将被重定向到另一个屏幕,以提供其他信息,如电子邮件、电话等 成功注册后,用户将通过G+登录应用程序 在此阶段,用户注销并再次通过FB登录,用户将在Firebase中注册并重定向到附加信息屏幕。如果用户输入相同的电子邮件id,Firebase将抛出错误。当我尝试将新的FB登录链接到G+
updateFBUserInfo() {
let user = firebase.auth().currentUser;
let userEmail = this.userInfo.email;
const provider = new firebase.auth.FacebookAuthProvider();
user.updateProfile({
displayName: this.userInfo.displayname,
photoURL: this.userInfo.photoURL
}).then(function() {
// Update successful.
user.updateEmail(userEmail).then(function() {
console.log('Update successful.');
}, function(error) {
console.log('EMAIL UPDATE ERROR: ' + error);
firebase.auth().currentUser.linkWithRedirect(provider).then(function () {
firebase.auth().getRedirectResult().then(function(result) {
if (result.credential) {
this.credential = result.credential;
var user = result.user;
}
}).catch(function(error) {
console.log('REDIRECT Error: ' + error);
});
}).catch(function(error) {
console.log('LINK Error :' + error);
})
});
}, function(error) {
console.log('CREDENTIAL ERROR :' + error);
// Get reference to the currently signed-in user
var prevUser = firebase.auth().currentUser;
// Sign in user with another account
firebase.auth().signInWithCredential(this.credential).then(function(user) {
console.log("Sign In Success", user);
var currentUser = user;
// Merge prevUser and currentUser accounts and data
// ...
}).catch(function(error) {
console.log("Sign In Error", error);
});
});
}
提前感谢。电子邮件更新错误:错误:该电子邮件地址已被其他帐户使用。链接错误:错误:用户只能链接到给定提供商的一个身份