auth.onAuthStateChanged не запускается после auth.currentUser.updateProfile в Firebase - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть компонент, обновляющий профиль пользователя pi c:

const Updater = () => {

    const updateProfilePic = async (photoURL) => {

        await auth.currentUser.updateProfile({ 'photoURL': photoURL });

    }

}

У меня есть второй компонент, обнаруживающий изменения в состоянии пользователя:

const StateChangesDetector = () => {

    auth.onAuthStateChanged( user => {

        if(user)
            console.log('User changed state', JSON.stringify(user));

    });

}

Проблема в том, что auth.onAuthStateChanged() не запускается после выполнения updateProfile(). Таким образом, я получаю состояние старого пользователя и старую фотографию профиля.

Как заставить принудительно вызвать auth.onAuthStateChanged() после обновления изображения профиля пользователя?

1 Ответ

1 голос
/ 06 апреля 2020

Попробуйте функцию reload () для объекта currentUser, чтобы получить обновленную информацию. Обратите внимание, что он асинхронный и возвращает обещание. Если это не вызывает прослушиватель (так как это не «изменение состояния», а просто refre sh данных), я подозреваю, что вам, возможно, придется снова получить доступ к firebase.auth().currentUser после того, как возвращенное обещание разрешит увидеть новые данные .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...