如果电子邮件已注册,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账号的账号。它不会自动发生。
我想知道如果电子邮件相同,是否可以 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账号的账号。它不会自动发生。