Я получаю сообщение об ошибке 'аутентификация / учетная запись-существует-с-разными-учетными данными' при использовании firebase.auth().signInWithCredential(credential).catch(error => ....
Как указано в: Firebase JS API auth -account-существующие-with-different-credential Я улавливаю ошибку и затем делаю это, чтобы устранить исключение:
firebase.auth().fetchSignInMethodsForEmail(error.email)
.then(providers => {
firebase.auth().signInWithCredential(credential)
.then(user => {
user.linkWithCredential(error.credential)
})
})
...
Проблема заключается в том, что мой объект ошибки не содержит адреса электронной почты или учетных данных.Он содержит только: code, framesToPop, nativeStackAndroid и userInfo (который имеет значение null).
Это мой код:
const result = await LoginManager.logInWithPermissions(['public_profile', 'email']);
const data = await AccessToken.getCurrentAccessToken();
if (data) {
const credential = firebase.auth.FacebookAuthProvider.credential(data.accessToken);
firebase.auth().signInWithCredential(credential).catch(error => {
if (errorCode === 'auth/account-exists-with-different-credential') {
firebase.auth().fetchSignInMethodsForEmail(error.email)
.then(providers => {
firebase.auth().signInWithCredential(credential)
.then(user => {
user.linkWithCredential(error.credential)
})
}).catch(error => log(error))
} else {
console.error(error);
}
});
}
...
Почему это происходит?