Я пытаюсь обновить электронную почту текущего пользователя, я пошел в документацию и скопировал код примера, который они там дали, Но ничего не сработало, это из документа не сработало
var user = firebase.auth().currentUser;
user.updateEmail("[email protected]").then(function() {
console.info('success')
}).catch(function(error) {
console.info('failed')
});
Я также пробовал:
try {
await user.updateEmail('[email protected]').then(function() {
console.info('success')
}).catch(function(error) {
handleErrors(dispatch, error.message);
});
} catch(e) {
handleErrors(dispatch, e.message);
}
не могли бы вы помочь решить эту проблему?
Обновить :
извините, я не указал точную ошибку, которая появляется в консоли, вот ошибка:
This operation is sensitive and requires recent authentication. Log in again before retrying this request.
2) Я должен добавить, что я использую asyncstorage для реакции native и сохраняю этот элемент (профиль пользователя => электронная почта, имя и т. д.) в 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);
}
}
Можете ли вы добавить код входа в firebase перед сменой электронной почты?
Вы получите что-нибудь, если выполните console.info(user) после var user = firebase.auth().currentUser;
да, он показывает данные, есть пользователь



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Сообщение об ошибке сообщает вам, что ни один пользователь не вошёл в систему, когда вы звоните updateEmail. SDK не знает, какого пользователя вы пытаетесь изменить. Вам нужно дождаться полного завершения входа в систему, прежде чем вызывать этот метод.
Обратите внимание, что все API-интерфейсы Firebase являются асинхронными, поэтому вам нужно будет использовать их возвращенные промисы, чтобы убедиться, что порядок вызовов действителен.
Пожалуйста, добавьте дополнительную информацию, например, что вы подразумеваете под "не работает" и какие ошибки были получены. Пожалуйста, учтите, что мы не можем видеть то, что видите вы, вы должны сообщить нам, чтобы мы могли понять проблему.