如果电子邮件已注册,Firebase SDK Facebook 登录将无法使用

Firebase SDK Facebook login wont work if email is already registered

我想知道如果电子邮件相同,是否可以 link 以前使用电子邮件和密码创建的用户使用 Facebook 登录?

我已经测试了使用 Facebook 注册和登录,它工作正常,电子邮件和密码也一样,但是如果我已经注册了我的 Facebook 电子邮件,那么 Facebook 登录按钮将不起作用,并且帐户也不起作用link完全没有。

我认为代码不是必需的,但无论哪种方式,我都将其放在下面:

$(document).on('click', "#btn-login-fb", function (event) {
    var provider = new firebase.auth.FacebookAuthProvider();
    provider.addScope('public_profile');
    provider.addScope('email');
    firebase.auth().setPersistence(firebase.auth.Auth.Persistence.SESSION)
        .then(function () {
        })
        .catch(function (error) {
            var errorCode = error.code;
            var errorMessage = error.message;
        });
    firebase.auth().signInWithPopup(provider).then(function (result) {
        var token = result.credential.accessToken;
        var user = result.user;
        if (result.additionalUserInfo.isNewUser) {
            var SendData = {
            uidAux: user.uid,
            FotoPerfilAux: user.photoURL,
            NomeCompleto: user.displayName,
            Email: user.email,
            FotoPerfilAux: user.photoURL,
            Telefone: user.phoneNumber
            };

        $.ajax({
            url: '@Url.Action("CadastraUsuarioFacebook", "Home")',
            type: "POST",
            data: JSON.stringify(SendData),
            contentType: 'application/json'
        }).always(function (data, status) {
            if (status == "success") {
            }
        });
        }
        window.location.href = '/Portal/PortalCliente';
    }).catch(function (error) {
        var errorCode = error.code;
        var errorMessage = error.message;
        var email = error.email;
        var credential = error.credential;
        // ...
    });
});

如果你想link a Firebase Auth account with an authentication provider比如Facebook,需要写代码到link另一个有Firebase账号的账号。它不会自动发生。