Angular2或4,Firebase身份验证链接问题

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+

在Angular4+Firebase 3.x中寻找指导

用例:

  • 具有所有firebase支持登录方法的登录屏幕
  • 用户应能够首先注册提供的任何登录方法,即G+、FB、TWT或电子邮件和密码
  • 通过任何方法成功登录后,用户将被重定向到另一个屏幕,以提供其他信息,如电子邮件、电话等
  • 成功注册后,用户将通过G+登录应用程序
  • 在此阶段,用户注销并再次通过FB登录,用户将在Firebase中注册并重定向到附加信息屏幕。如果用户输入相同的电子邮件id,Firebase将抛出错误。当我尝试将新的FB登录链接到G+id时,我得到以下错误

    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);
      });
    });
    }
    


    提前感谢。

    电子邮件更新错误:错误:该电子邮件地址已被其他帐户使用。链接错误:错误:用户只能链接到给定提供商的一个身份