Javascript 链接Firebase中的多个帐户
我已经被这个问题困扰了很长时间,我决定把我的问题贴在这里 我的问题是合并Firebase中的帐户(Facebook和Google)。与他们中的任何一个单独签约都可以 起初,当用户注册谷歌,后来注册Facebook(与谷歌有相同的电子邮件地址)时,会抛出错误。正如您在下面的代码中看到的那样,我成功地处理了这个错误,但我不知道如何合并这两个帐户 以下是我迄今为止所做的工作:Javascript 链接Firebase中的多个帐户,javascript,firebase,firebase-authentication,Javascript,Firebase,Firebase Authentication,我已经被这个问题困扰了很长时间,我决定把我的问题贴在这里 我的问题是合并Firebase中的帐户(Facebook和Google)。与他们中的任何一个单独签约都可以 起初,当用户注册谷歌,后来注册Facebook(与谷歌有相同的电子邮件地址)时,会抛出错误。正如您在下面的代码中看到的那样,我成功地处理了这个错误,但我不知道如何合并这两个帐户 以下是我迄今为止所做的工作: facebookSignin: function() { var self = this firebase.auth(
facebookSignin: function() {
var self = this
firebase.auth().signInWithPopup(facebookProvider).then(function(result) {
var token = result.credential.accessToken;
var user = result.user;
self.registerProfile()
}).catch(function(error) {
var errorCode = error.code;
var errorMessage = error.message;
console.log("ERROR:" + error)
console.log("email is : " + error.email)
if (errorCode == 'auth/account-exists-with-different-credential') {
firebase.auth().fetchProvidersForEmail(error.email).then(providers => {
//providers returns this array -> ["google.com"]
console.log("Providers:" + providers)
console.log("Credential: " + JSON.stringify(error.credential))
firebase.auth().currentUser.link(error.credential).then(function(user) {
console.log("Account linking success", user);
});
}).catch(function(error){
console.log("error:" + error)
})
}
console.log("error code:" + error.code+ "error msg:" + error.message)
});
错误:TypeError:\uuuuu WEBPACK\u IMPORTED\u MODULE\uu 1\u firebase\uuuu default.a.auth(…)。当前用户为null
李>
我阅读了有关合并部分的文档,但仍然无法理解这一点
非常感谢您的帮助。在您
获取ProvidersForemail
并找出现有的Google用户后,您必须首先登录到该现有帐户:
firebase.auth().signInWithPopup(new firebase.auth.GoogleAuthProvider().setCustomParameters({login_hint: error.email})...
完成后,您可以:
firebase.auth().currentUser.linkWithCredential(error.credential)
因此,在链接Facebook帐户之前,用户首先必须验证现有帐户的所有权