Не могу обновить электронную почту пользователя

Я пытаюсь обновить электронную почту текущего пользователя, я пошел в документацию и скопировал код примера, который они там дали, Но ничего не сработало, это из документа не сработало

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);
       }

     }

Пожалуйста, добавьте дополнительную информацию, например, что вы подразумеваете под "не работает" и какие ошибки были получены. Пожалуйста, учтите, что мы не можем видеть то, что видите вы, вы должны сообщить нам, чтобы мы могли понять проблему.

Avery 27.03.2019 15:46

Можете ли вы добавить код входа в firebase перед сменой электронной почты?

yaron1m 27.03.2019 16:13

Вы получите что-нибудь, если выполните console.info(user) после var user = firebase.auth().currentUser;

Shaharyar Kirmani 27.03.2019 17:50

да, он показывает данные, есть пользователь

hMedia 27.03.2019 19:09
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
401
1

Ответы 1

Сообщение об ошибке сообщает вам, что ни один пользователь не вошёл в систему, когда вы звоните updateEmail. SDK не знает, какого пользователя вы пытаетесь изменить. Вам нужно дождаться полного завершения входа в систему, прежде чем вызывать этот метод.

Обратите внимание, что все API-интерфейсы Firebase являются асинхронными, поэтому вам нужно будет использовать их возвращенные промисы, чтобы убедиться, что порядок вызовов действителен.

Другие вопросы по теме