오랫동안이 문제로 인해 갇혀 있었고 여기에 내 문제를 게시하기로 결정했습니다.Firebase에 여러 계정 연결하기
내 문제는 Firebase에서 계정 (Facebook 및 Google)을 병합하는 것입니다. 그들 중 하나와 독립적으로 가입하면 정상적으로 작동합니다.
처음에는 사용자가 Google과 가입하고 나중에 Google과 동일한 이메일 주소를 가진 Facebook을 사용하면 오류가 발생하고 오류가 발생합니다. 아래 코드에서 볼 수 있듯이 오류를 처리했지만 두 계정을 병합하는 방법을 알지 못합니다. 여기
내가 지금까지 무엇을했는지 있습니다 :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)
});
- 첫째는 내가 이미 구글과 함께 서명
- 지금은 내가 전류를 얻을 수 동일한 이메일 주소와 페이스 북으로 로그인 할 사용자가 로그인하지 않았기 때문에 사용자 null이 분명히 있습니다.이 오류는
error:TypeError: __WEBPACK_IMPORTED_MODULE_1_firebase___default.a.auth(...).currentUser is null
입니다.
병합 부분에 대한 설명서를 읽었지만 여전히 파악할 수 없습니다. https://firebase.google.com/docs/auth/web/account-linking#link-federated-auth-provider-credentials-to-a-user-account
정말 감사드립니다.