Я пытаюсь обновить электронную почту текущего пользователя, я зашел в документацию и скопировал приведенный там пример кода, но ничего не получилось, это из doc не сработало
var user = firebase.auth().currentUser;
user.updateEmail("newemail@example.com").then(function() {
console.log('success')
}).catch(function(error) {
console.log('failed')
});
Я также пытался:
try {
await user.updateEmail('test@test.com').then(function() {
console.log('success')
}).catch(function(error) {
handleErrors(dispatch, error.message);
});
} catch(e) {
handleErrors(dispatch, e.message);
}
Не могли бы вы помочь решить эту проблему?
обновление:
извините, я не включил точную ошибку, которая появляется вконсоль, вот ошибка:
Эта операция чувствительна и требует недавней аутентификации.Еще раз войдите в систему, прежде чем повторить этот запрос.
2) Я должен добавить, что я использую асинхронное хранилище реагировать нативно, и я сохраняю этот элемент (профиль пользователя => email, name, ect ..)в reduxPersist
таков мой код входа в систему:
export const login = ( email, password ) => {
return async (dispatch) => {
dispatch({ type: ATTEMPTING });
try {
await firebase.auth().signInWithEmailAndPassword(email, password)
.then(resp => handleLoginSuccess(dispatch, resp.uid,resp.name,email))
.catch(error => handleErrorLogin(dispatch, error.message));
}catch(e){
handleErrorLogin(dispatch, e.message);
}
};
};
const handleLoginSuccess = async(dispatch , userId,name,email) => {
try{
const profile = { userId, name, email };
await AsyncStorage.setItem('userProfile', JSON.stringify(profile));
dispatch({ type: LOGIN_SUCCESS, payload: profile });
}catch(e){
alert(e.message);
}
}